php中按键值对数组排序
我是php新手,我不知道数组排序。问题是我需要对下面列出的数组进行排序,以便按其键字段顺序进行排序。表示需要按“1,2,5”排序 数组:php中按键值对数组排序,php,Php,我是php新手,我不知道数组排序。问题是我需要对下面列出的数组进行排序,以便按其键字段顺序进行排序。表示需要按“1,2,5”排序 数组: Array ( [Apple] => Array ( [name] => Apparel & Accessories [order] => 5 ) [Bannana] => Array
Array
(
[Apple] => Array
(
[name] => Apparel & Accessories
[order] => 5
)
[Bannana] => Array
(
[name] => Business Stationary
[order] => 1
)
[Orenge] => Array
(
[name] => Business Cards
[order] => 2
)
)
如何按顺序对该数组进行排序
需要显示如下内容:
Array
(
[Bannana] => Array
(
[name] => Business Stationary
[order] => 1
)
[Orenge] => Array
(
[name] => Business Cards
[order] => 2
)
[apple] => Array
(
[name] => Apparel & Accessories
[order] => 5
)
)
这应该适合您:
<?php
$array = array(
"Apple" => array(
"name" => "Apparel & Accessories",
"order" => 5
),
"Bannana" => array(
"name" => "Business Stationary",
"order" => 1
),
"Orenge" => array (
"name" => "Business Cards",
"order" => 2
)
);
function sortByOrder($a, $b) {
return $a['order'] - $b['order'];
}
usort($array, 'sortByOrder');
print_r($array);
?>
这应该适合您:
<?php
$array = array(
"Apple" => array(
"name" => "Apparel & Accessories",
"order" => 5
),
"Bannana" => array(
"name" => "Business Stationary",
"order" => 1
),
"Orenge" => array (
"name" => "Business Cards",
"order" => 2
)
);
function sortByOrder($a, $b) {
return $a['order'] - $b['order'];
}
usort($array, 'sortByOrder');
print_r($array);
?>
建议您使用。例如:
$arr = array
(
"Apple" => array
(
"name" => "Apparel & Accessories" ,
"order" => 5
),
"Bannana" => array
(
"name" => "Business Stationary",
"order" => 1
),
"Orenge" => array
(
"name" => "Business Cards",
"order" => 2
)
);
function custom_sort($a, $b)
{
if ($a['order']==$b['order']) return 0;
return ($a['order'] < $b['order']) ? -1 : 1;
}
usort($arr, "custom_sort");
print '<pre>';
print_r($arr);
print '</pre>';
建议您使用。例如:
$arr = array
(
"Apple" => array
(
"name" => "Apparel & Accessories" ,
"order" => 5
),
"Bannana" => array
(
"name" => "Business Stationary",
"order" => 1
),
"Orenge" => array
(
"name" => "Business Cards",
"order" => 2
)
);
function custom_sort($a, $b)
{
if ($a['order']==$b['order']) return 0;
return ($a['order'] < $b['order']) ? -1 : 1;
}
usort($arr, "custom_sort");
print '<pre>';
print_r($arr);
print '</pre>';
Usort函数来了
function sortbyorder($a, $b) {
return $a['order'] > $b['order'];
}
usort ($array, 'sortbyorder');
更多信息请点击此处:
致以最良好的祝愿
也可以是:
Usort函数来了
function sortbyorder($a, $b) {
return $a['order'] > $b['order'];
}
usort ($array, 'sortbyorder');
更多信息请点击此处:
致以最良好的祝愿
也可以是:
最好的答案是,$a['order']-$b['order']的技巧不错。顺便说一句:我不知道php小/大是否基于差分计算,但这是:返回$a['order']>$b['order'];这只是一个逻辑运算符,而不是数学运算符:。@JacekKowalewski你是对的,没有想到这一点。凉的没问题,如果你愿意,你可以更新你的答案,你是第一个,这只是一个真正学究式的更新;。最好的问候,+1来自我:。最好的答案,很好的技巧$a['order']-$b['order']。顺便说一句:我不知道php小/大是否基于差分计算,但这是:返回$a['order']>$b['order'];这只是一个逻辑运算符,而不是数学运算符:。@JacekKowalewski你是对的,没有想到这一点。凉的没问题,如果你愿意,你可以更新你的答案,你是第一个,这只是一个真正学究式的更新;。向我致以最良好的问候,+1:。Thx用于upvote,但是Rizier123答案返回$a['order']-$b['order']更干净:。使用更干净的解决方案更新:PThx用于upvote,但是Rizier123答案返回$a['order']-$b['order']更干净:。使用更干净的解决方案更新:P