0

次のように、同じ構造を持つ多次元配列がいくつかあるとします。

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 ) )

実際の多次元配列はもっと複雑になります。これは、必要なものを説明するためのものです。

ありがとう!!!!

4

2 に答える 2

0

私はあなたがやろうとしていることは、2つのソートされたシーケンス(idまたはuseridによる)を最終的なソートされたシーケンスにマージすることだと思います。その場合は、MergeSortの一部として使用されるマージ手順を確認してください:http://en.wikipedia.org/wiki/Merge_sort#Algorithm

于 2011-11-11T12:22:36.993 に答える
0
$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;
于 2014-03-03T05:37:56.613 に答える