PHP数组按值排序
我已经更新了我的问题,请检查一下 我有一个数组,如下所示:PHP数组按值排序,php,Php,我已经更新了我的问题,请检查一下 我有一个数组,如下所示: $array = [ 0 => [ "term" => "DECATHLON", "count" => 7, ], 1 => [ "term" => "babywalz", "count" => 6, ], 2 => [ "term" => "Douglas", "count" => 3, ], 3 =>
$array = [
0 => [
"term" => "DECATHLON",
"count" => 7,
],
1 => [
"term" => "babywalz",
"count" => 6,
],
2 => [
"term" => "Douglas",
"count" => 3,
],
3 => [
"term" => "NETFLIX",
"count" => 2,
],
4 => [
"term" => "zalando",
"count" => 2,
],
5 => [
"term" => "Ernsting's family",
"count" => 1,
],
6 => [
"term" => "Spotify",
"count" => 1,
],
7 => [
"term" => "eventim",
"count" => 1,
]
];
我想对数组进行如下排序:
$array = [
1 => [
"term" => "babywalz",
"count" => 6,
],
0 => [
"term" => "DECATHLON",
"count" => 7,
],
2 => [
"term" => "Douglas",
"count" => 3,
],
5 => [
"term" => "Ernsting's family",
"count" => 1,
],
7 => [
"term" => "eventim",
"count" => 1,
],
3 => [
"term" => "NETFLIX",
"count" => 2,
],
6 => [
"term" => "Spotify",
"count" => 1,
],
];
任何建议都会有帮助。我已经使用了asort(),但它没有按我所希望的那样工作。我还尝试了natcasesort()。这将对阵列进行不区分大小写的排序:
natcasesort($array);
因此:
像这样使用函数:sort($array)
请参阅文档:
自然顺序排序(不区分大小写)您必须使用
natcasesort
,查找更多详细信息
输出
Array ( [1] => a [0] => D [3] => f [2] => Z )
您应该将
usort
与
谢谢你宝贵的帮助。我已解决我的问题如下:
usort($value, function($x, $y) {
return strcasecmp($x['term'], $y['term']);
});
回答后,你完全重组了你的问题。在OP完全重新编辑问题之前,这个答案有效;)
$array = [ 'D', 'a', 'Z', 'f'];
natcasesort ($array);
print_r($array);
Array ( [1] => a [0] => D [3] => f [2] => Z )
usort($array, function($a, $b){
return strnatcmp (strtolower($a["term"]), strtolower($b["term"]));
});
usort($value, function($x, $y) {
return strcasecmp($x['term'], $y['term']);
});