2 次元配列 php のソート
例は次のとおりです:$arr1=array( 0=>array('pid'=>1,name=>'user1'), 1=>array('pid'=>2,name=>'user2'));
$arr2=array( 0=>array('pid'=>3,name=>'user1'), 1=>array('pid'=>4,name=>'user4'));
$arr2=array( 0=>array('pid'=>1,name=>'user1'), 1=>array('pid'=>2,name=>'user2') 2=>array('pid'=>3,name=>'user3'), 3=>array('pid'=>4,name=>'user4'));
$arr1=array( 0=>array('pid'=>1,'name'=>'user1'), 1=>array('pid'=>2,'name'=>'user2'));$arr2=array( 0=>array('pid'=>3,'name'=>'user1'), 1=>array('pid'=>4,'name'=>'user4'));$t = array();foreach(array_merge($arr1, $arr2) as $v) { if(isset($t[$v['name']])) { if($t[$v['name']]['pid'] > $v['pid']) $t[$v['name']]['name'] = "user{$v['pid']}"; else $v['name'] = "user{$v['pid']}"; } $t[$v['name']] = $v;}print_r($t);
Array( [user1] => Array ( [pid] => 1 [name] => user1 ) [user2] => Array ( [pid] => 2 [name] => user2 ) [user3] => Array ( [pid] => 3 [name] => user3 ) [user4] => Array ( [pid] => 4 [name] => user4 ))
これら 2 つの配列を比較して、pid で並べ替えられた重複する値を見つけたいと思います。次に、より大きな pid を持つ重複した user1 を user3 に変更します
arr1 と arr2 に重複したデータがありますか?何が繰り返しとしてカウントされますか?同じ名前ですが、重複しているだけですか?
これら 2 つの配列を比較して重複する値を見つけ、pid で並べ替えて、pid が大きい重複した user1 を user3 に変更したいと思います
arr1 と arr2 に重複したデータはありますか?何が繰り返しとしてカウントされますか?同じ名前ですが、重複しているだけですか?
はい。
$arr1=array( 0=>array('pid'=>1,'name'=>'user1'), 1=>array('pid'=>2,'name'=>'user2'));$arr2=array( 0=>array('pid'=>3,'name'=>'user1'), 1=>array('pid'=>4,'name'=>'user4'));$t = array();foreach(array_merge($arr1, $arr2) as $v) { if(isset($t[$v['name']])) { if($t[$v['name']]['pid'] > $v['pid']) $t[$v['name']]['name'] = "user{$v['pid']}"; else $v['name'] = "user{$v['pid']}"; } $t[$v['name']] = $v;}print_r($t);
Array( [user1] => Array ( [pid] => 1 [name] => user1 ) [user2] => Array ( [pid] => 2 [name] => user2 ) [user3] => Array ( [pid] => 3 [name] => user3 ) [user4] => Array ( [pid] => 4 [name] => user4 ))
モデレーター権限では、name をキーとして $t という配列を再編成し、データ行が作成されるたびに $t がチェックされ、キーが存在するかどうかが判断されます。最大のpid。存在しない場合は、$t データの完全な行が使用されます。
印刷された結果をもう見たことがありませんか?
名前が重複しないようにする必要があるため、関連キーとして名前を使用できます
関連キーが重複する可能性があることが判明した場合は、それに応じて処理します
印刷結果はもうご覧になりましたか?
名前が重複しないようにする必要があるため、関連付けられたキーとして名前を使用できます
関連付けられたキーが重複する可能性があることが判明した場合は、それに応じて処理します
ありがとうございます