Как объединить и asort () двух массивов объектов в один новый массив? - PullRequest
0 голосов
/ 24 декабря 2010
function sortnmerge($array1,$array2)
$all= array_merge_recursive($array1, $array2);
asort($all);

Хотя это работает для обычных массивов, есть ли способ применить его к двум массивам объектов или более?

$ all будет результатом объединения обоих списков контактов.

Заранее спасибо,

JP-

Ответы [ 2 ]

0 голосов
/ 24 декабря 2010

Два шага: определите функцию для сравнения объектов, затем вызовите usort($all, "cmp"). Пример:

<?php

function cmp($a, $b) {
    return $a->some_value > $b->some_value;
}

function sortnmerge($arr1, $arr2) {
    $all = array_merge_recursive($arr1, $arr2);
    usort($all, "cmp");
}
?>

Конечно, я предполагаю, что вы пытаетесь объединить два массива объектов, а затем сравнить их на основе некоторого свойства.

0 голосов
/ 24 декабря 2010
    <?php
   function arrayobj_merge_recursive2($paArray1, $paArray2)
{
    if(is_array($paArray2))
    {
        foreach ($paArray2 AS $sKey2 => $sValue2)
        {
            $paArray1[$sKey2] = arrayobj_merge_recursive2(@$paArray1[$sKey2], $sValue2);
        }
    }
    elseif(is_object($paArray2))
    {   
        foreach ($paArray2 AS $sKey2 => $sValue2)
        {
             $paArray1->{$sKey2} = arrayobj_merge_recursive2(@$paArray1->{$sKey2}, $sValue2);
        } 
    } else {
         return $paArray2;
    }  
   return $paArray1;
}
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...