объединение многомерных массивов (PHP) - PullRequest
0 голосов
/ 11 ноября 2011

Скажем, у меня есть пара многомерных массивов с одинаковой структурой, например:

Array ( [0] => Tips Object ( [id] => 1 [userId] => 10 )
    [1] => Tips Object ( [id] => 2 [userId] => 22 )
    [2] => Tips Object ( [id] => 3 [userId] => 33 )
    [3] => Tips Object ( [id] => 7 [userId] => 77 ) ) 


Array ( [0] => Tips Object ( [id] => 2 [userId] => 22 )
    [1] => Tips Object ( [id] => 3 [userId] => 33 )
    [2] => Tips Object ( [id] => 4 [userId] => 44 )
    [3] => Tips Object ( [id] => 5 [userId] => 55 )
    [4] => Tips Object ( [id] => 6 [userId] => 66 ) ) 

Мне нужен способ объединить их таким образом, чтобы я получил это:

Array ( [0] => Tips Object ( [id] => 1 [userId] => 10 )
    [1] => Tips Object ( [id] => 2 [userId] => 22 )
    [2] => Tips Object ( [id] => 3 [userId] => 33 )
    [3] => Tips Object ( [id] => 4 [userId] => 44 )
    [4] => Tips Object ( [id] => 5 [userId] => 55 )
    [5] => Tips Object ( [id] => 6 [userId] => 66 )
    [6] => Tips Object ( [id] => 7 [userId] => 77 ) )

Реальный многомерный массив будет более сложным, просто он поможет объяснить, что мне нужно.

Спасибо !!!!

Ответы [ 2 ]

0 голосов
/ 03 марта 2014
$array1=array(  0=>array('id'=>'1','userid'=>'10'),
                1=>array('id'=>'2','userid'=>'22'),
                2=>array('id'=>'3','userid'=>'33'),
                3=>array('id'=>'7','userid'=>'77'));

$array2=array(  0=>array('id'=>'2','userid'=>'22'),
                1=>array('id'=>'3','userid'=>'33'),
                2=>array('id'=>'4','userid'=>'44'),
                3=>array('id'=>'5','userid'=>'55'),
                4=>array('id'=>'6','userid'=>'66'));

echo "<pre>";

$mix = array();
foreach($array2 as $k=>$value)
{
    if(!in_array($value,array_values($array1))){
        $array1[] = $value;
    }
}


function sortById($a, $b) {
    return $a['id'] - $b['id'];
}
usort($array1, 'sortById');
print_r($array1);
exit;
0 голосов
/ 11 ноября 2011

Я предполагаю, что вы пытаетесь объединить две отсортированные последовательности (по id или идентификатору пользователя) в окончательную отсортированную последовательность.В этом случае просмотрите процедуру слияния, используемую как часть MergeSort: http://en.wikipedia.org/wiki/Merge_sort#Algorithm

...