ph二维数组排序难题,内附详细需求

WBOY
Libérer: 2016-06-13 12:22:10
original
1010 Les gens l'ont consulté

ph二维数组排序难题,请求帮助,内附详细需求
初始状态的二维数组是这样的

$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 />)
Copier après la connexion

默认按照name字段排序,但是现在需要改变
仍然按照name字段排序,但是同时也要按照parentNum字段排序,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'),
Copier après la connexion

请问怎么用代码实现呢?我试了蛮久不怎么会?
------解决思路----------------------
$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);
Copier après la connexion
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 />
Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal