Php 多维数组挑战
我试图通过内部值的非标准排序对数组进行排序,但当其他值相等时,保留它们的顺序。所以我这样做:Php 多维数组挑战,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我试图通过内部值的非标准排序对数组进行排序,但当其他值相等时,保留它们的顺序。所以我这样做: $articles[0]['name']='Article 1'; $articles[0]['grouping']=''; $articles[1]['name']='Article 2'; $articles[1]['grouping']='Item group'; $articles[2]['name']='Article 3'; $articles[2]['grouping']=''; $
$articles[0]['name']='Article 1';
$articles[0]['grouping']='';
$articles[1]['name']='Article 2';
$articles[1]['grouping']='Item group';
$articles[2]['name']='Article 3';
$articles[2]['grouping']='';
$articles[3]['name']='Article 4';
$articles[3]['grouping']='Item group';
$articles[4]['name']='Article 5';
$articles[4]['grouping']='';
function cmpBySort($a, $b) {
return strcmp($a["grouping"], $b["grouping"]);
}
usort($articles, 'cmpBySort');
foreach ($articles as $article){
echo $article['name'].' - '.$article['grouping'].'<br>';
}
但我想实现
第2条-项目组
第4条-项目组
第1条-
第3条-
第5条-
请注意,我希望在末尾有空格,如果相等,则按文章名称排序(因此是1,3,5,而不是5,1,3)
希望有人是一个数组wizz,可以帮助解决这个问题!
谢谢
斯科特试试:
函数cmpBySort($a,$b){
如果(strcmp($a[“分组”],$b[“分组”])==0){
返回strcmp($a[“name”],$b[“name”]);
}
return-strcmp($a[“grouping”],$b[“grouping”]);
}
试试:
函数cmpBySort($a,$b){
如果(strcmp($a[“分组”],$b[“分组”])==0){
返回strcmp($a[“name”],$b[“name”]);
}
return-strcmp($a[“grouping”],$b[“grouping”]);
}
Article 5 -
Article 1 -
Article 3 -
Article 2 - Item group
Article 4 - Item group