function msort(&$arr, $low, $high) { if ($low < $high) { $mid = floor(($low + $high) / 2); msort($arr, $low, $mid); msort($arr, $mid + 1, $high); mergeArray($arr, $low, $mid, $high); } }
function mergeSort(array &$a, $first, $last, $temp) { if ($first < $last) { $mid = (int) (($first + $last) / 2); mergeSort($a, $first, $mid, $temp); mergeSort($a, $mid + 1, $last, $temp); mergeArray($a, $first, $mid, $last, $temp); } }
function mergeArray($a1, $a2) { foreach ($a2 as $key => $value) { if (!isset($a1[$key]) || !is_array($a1[$key])) { $a1[$key] = $value; } else { $a1[$key] = mergeArray($a1[$key], $value); } } return $a1; }
/** * mergeArray * 迭代合并数组 * <code> * $a = array( "a"=>"123","b"=>"321", "c"=>array( "ddd"=>"d","ccc"=>"d" ) ); * $b = array( "c"=>array( "123"=>"123123123","333"=>"dsfsdfsdf" ),"d"=>"444" ); * var_dump( mergeOptions( $a,$b ) ); * </code> * @param array $array1 * @param mixed $array2 * @access public * @return void */ function mergeArray(array $array1, $array2 = null) { if (is_array($array1)) { foreach ($array2 as $key => $val) { if (is_array($val)) { $array1[$key] = array_key_exists($key, $array1) && is_array($array1[$key]) ? mergeArray($array1[$key], $val) : $array2[$key]; } else { $array1[$key] = $val; } } } return $array1; }
function mergeArray($a, $b) { $args = func_get_args(); $res = array_shift($args); while (!empty($args)) { $next = array_shift($args); foreach ($next as $k => $v) { if (is_integer($k)) { isset($res[$k]) ? $res[] = $v : ($res[$k] = $v); } elseif (is_array($v) && isset($res[$k]) && is_array($res[$k])) { $res[$k] = mergeArray($res[$k], $v); } else { $res[$k] = $v; } } } return $res; }
} $tmp3 = 0; for ($i = 1; $i <= 12; $i++) { echo '<td class="text-center">' . $roomRent[$i] . '</td>'; $tmp3 += $roomRent[$i]; } echo '<td class="text-center">' . $tmp3 . '</td>'; echo '</tr>'; echo '<tr class="group-' . $key . '">'; echo '<td>Зарплата</td>'; $userSalary['plan'] = array(); $userSalary['fact'] = array(); foreach ($room->getGroups() as $id) { $userSalaryTmp = \Model\Driver::userSalary($id); // $userSalary['plan'] = mergeArray($userSalary['plan'],$userSalaryTmp['plan']); $userSalary = mergeArray($userSalary, $userSalaryTmp); } $tmp4['plan'] = 0; $tmp4['fact'] = 0; for ($i = 1; $i <= 12; $i++) { echo '<td class="text-center">' . $userSalary[$i]['plan'] . ' <br /> ' . $userSalary[$i]['fact'] . '</td>'; $tmp4['plan'] += $userSalary[$i]['plan']; $tmp4['fact'] += $userSalary[$i]['fact']; } echo '<td class="text-center">' . $tmp4['plan'] . ' <br /> ' . $tmp4['fact'] . '</td>'; echo '</tr>'; echo '<tr class="group-' . $key . '">'; echo '<td>Опер. прибыль</td>'; $tmp5 = 0; for ($i = 1; $i <= 12; $i++) { $s = $userSale[$i] - $roomRent[$i] - $userSalary[$i]['fact'];
function mergeArray($array1, $array2) { global $t; // echo $t; if ($t == 2) { // echo ''; } $t++; $data = array(); if ($array2 == null) { return $array1; } foreach ($array2 as $key => $val) { if (isset($array1[$key])) { if (is_array($val)) { $data[$key] = mergeArray($array1[$key], $val); } else { $data[$key] = $val + $array1[$key]; } } else { $data[$key] = $val; } } return $data; }
public function Vikont_ARIOEMAPI($config) { $this->_config = mergeArray($this->_config, $config); }
а във втората част – тези на втория подаден масив. */ $a = [1, 2, 3]; $b = [4, 5, 6]; function mergeArray($a, $b) { $lenA = count($a) - 1; $lenB = count($b) - 1; $len = $lenA; $count = 0; $c = []; for ($i = 0; $i <= $len; $i += 1) { if (!$count) { if ($i < $len) { $c[] = $a[$i]; } else { if ($i == $len) { $c[] = $a[$i]; $count += 1; $len = $lenB; $i = -1; } } } else { $c[] = $b[$i]; } } return $c; } $new = mergeArray($a, $b); print_r($new);