詳細な要件を含む ph 2 次元配列ソート問題

WBOY
リリース: 2016-06-13 12:22:10
オリジナル
1011 人が閲覧しました

Ph の 2 次元配列のソート問題、助けてください。詳細な要件が含まれています
2 次元配列の初期状態は次のようになります

$a = array(<br />  array('name'=>'a','num'=>'1','parentNum'=>'0'),<br />  array('name'=>'b','num'=>'2','parentNum'=>'0'),<br />  array('name'=>'c','num'=>'3','parentNum'=>'0'),<br />  array('name'=>'d','num'=>'4','parentNum'=>'1'),<br />  array('name'=>'e','num'=>'5','parentNum'=>'2'),<br />  array('name'=>'f','num'=>'6','parentNum'=>'0'),<br />  array('name'=>'g','num'=>'7','parentNum'=>'0'),<br />)
ログイン後にコピー

デフォルトでは名前フィールドでソートされますが、ここで変更する必要があります
に従って、名前フィールドは並べ替えられますが、parentNum フィールドによっても並べ替える必要があるため、最終結果は
  array('name'=>'a','num'=>'1','parentNum'=>'0'),<br />    array('name'=>'d','num'=>'4','parentNum'=>'1'),<br />  array('name'=>'b','num'=>'2','parentNum'=>'0'),<br />   array('name'=>'e','num'=>'5','parentNum'=>'2'),<br />  array('name'=>'c','num'=>'3','parentNum'=>'0'),<br />  array('name'=>'f','num'=>'6','parentNum'=>'0'),<br />  array('name'=>'g','num'=>'7','parentNum'=>'0'),
ログイン後にコピー

になります。これをコードに実装するにはどうすればよいでしょうか?長い間試しているのですが、まだわかりませんか?
------解決策のアイデア----------------------
$a = array(<br />  array('name'=>'a','num'=>'1','parentNum'=>'0'),<br />  array('name'=>'b','num'=>'2','parentNum'=>'0'),<br />  array('name'=>'c','num'=>'3','parentNum'=>'0'),<br />  array('name'=>'d','num'=>'4','parentNum'=>'1'),<br />  array('name'=>'e','num'=>'5','parentNum'=>'2'),<br />  array('name'=>'f','num'=>'6','parentNum'=>'0'),<br />  array('name'=>'g','num'=>'7','parentNum'=>'0'),<br />);

foreach($a as $r) {
$p[] = $r['parentNum'] ? $r['parentNum'] : $r['num'];
}
array_multisort($p, $a);
print_r($a);
ログイン後にコピー
Array<br />(<br />    [0] => Array<br />        (<br />            [name] => a<br />            [num] => 1<br />            [parentNum] => 0<br />        )<br /><br />    [1] => Array<br />        (<br />            [name] => d<br />            [num] => 4<br />            [parentNum] => 1<br />        )<br /><br />    [2] => Array<br />        (<br />            [name] => b<br />            [num] => 2<br />            [parentNum] => 0<br />        )<br /><br />    [3] => Array<br />        (<br />            [name] => e<br />            [num] => 5<br />            [parentNum] => 2<br />        )<br /><br />    [4] => Array<br />        (<br />            [name] => c<br />            [num] => 3<br />            [parentNum] => 0<br />        )<br /><br />    [5] => Array<br />        (<br />            [name] => f<br />            [num] => 6<br />            [parentNum] => 0<br />        )<br /><br />    [6] => Array<br />        (<br />            [name] => g<br />            [num] => 7<br />            [parentNum] => 0<br />        )<br /><br />)<br /><br />
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート