$temp = array('k1'=>array('m1' => '1' ,'m2' => '2'),'k2'=>array('m1'=> ;'3','m2'=>'4'));
上記の構造体配列と同様に、
1 の $ 内のキー値を削除する方が合理的です。 temp 配列要素
2. $temp 配列をキー値 'm1'、'm2'
で並べ替えます。現時点で考えられるのは、配列の場合、foreach を使用して配列操作を容易にすることだけです。比較的大きいので非効率に感じますが、何か良い方法はありますか?
total 必要です。そうしないと、誰が操作して誰が操作してはいけないのかがわかりません
でも、誰が通過するかが重要です
$temp = array('k1'=>array('m1' => '1' ,'m2' => '2'),'k2'=>array('m1'=>'3','m2'=>'4'));array_walk($temp, function(&$v) { unset($v['m2']);});print_r($temp);
Array( [k1] => Array ( [m1] => 1 ) [k2] => Array ( [m1] => 3 ))
$temp = array('k1'=>array('m1' => '1' ,'m2' => '2'),'k2'=>array('m1'=>'3','m2'=>'4'));$newArray = array();print_r(array_map("mysort",$newArray,$temp));function mysort($v1,$v2){ $v1['m2'] = $v2['m1']; $v1['m1'] = $v2['m2']; return $v1;}
これは何の並べ替えですか?
array_walk($temp, function(&$v) { krsort($v);});print_r($temp);/*Array( [k1] => Array ( [m2] => 2 [m1] => 1 ) [k2] => Array ( [m2] => 4 [m1] => 3 ))*/
$temp = array('k1'=>array('m1' => '1' ,'m2' => '2'),'k2'=>array('m1'=>'3','m2'=>'4'));array_walk($temp, function(&$v) { krsort($v);});print_r($temp);
Array( [k1] => Array ( [m2] => 2 [m1] => 1 ) [k2] => Array ( [m2] => 4 [m1] => 3 ))
つまり、元の KEY 値のシーケンスは 'm1'、'm2'、そして取得したいシーケンスですは「m2」、「m1」です。特定の要素の値を考慮せずに、カスタム ルールに従って配列キーの順序を変更するだけです。
元の配列
配列
(
[0] => 🎜> )
[1] => 配列
(
[m2] => ; 3
[m1] => 4
)
)
新しい配列
配列
(
[0] => 🎜> )
[1] => 配列
(
[m2] => 3
[m1] => 4
)