Exemple #1
0
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);
    }
}
Exemple #3
0
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;
}
Exemple #4
0
/**
 * 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;
}
Exemple #5
0
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;
}
Exemple #6
0
 }
 $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'];
Exemple #7
0
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;
}
Exemple #8
0
 public function Vikont_ARIOEMAPI($config)
 {
     $this->_config = mergeArray($this->_config, $config);
 }
Exemple #9
0
а във втората част – тези на втория подаден масив.
*/
$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);