我有一个阵列

问题描述 投票:0回答:3
ksort($arr);

但是它只是返回布尔
我想要的输出

[ ['peck' => 4], ['Peter' => 4], ['picked' => 4], ['pickled' => 4], ['Piper' => 4], ]

任何字母案例都应按钥匙和上升顺序对数组进行排序。
    

使用这样的用户,请检查

demo

usort($array,function($a,$b){
    return strcmp(strtolower(key($a)),strtolower(key($b)));
});

php arrays sorting multidimensional-array case-insensitive
3个回答
1
投票
方法进行就地进行。因此,尽管它仅返回布尔值(正如您正确地陈述),但它会突变

ksort()内部的值以排序顺序。请注意,根据您的预期输出,您似乎想进行案例不敏感的搜索。为此,您需要使用$arr

排序标志。因此,您不是要使用
SORT_FLAG_CASE
来调用

0
投票
。您可以在

ksort($arr, SORT_FLAG_CASE)
方法的文档
中查看
ksort()
如何使用排序标志。希望有帮助!

您可以做这样的事情,
sort()
demo
输出


0
投票

在隔离和准备数据以进行比较的同时,较少的开销,将第二级键作为第一个参数,然后设置必要的标志,以对键进行比较。 demo

Array ( [0] => Array ( [peck] => 4 ) [1] => Array ( [Peter] => 4 ) [2] => Array ( [picked] => 4 ) [3] => Array ( [pickled] => 4 ) [4] => Array ( [Piper] => 4 ) )

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.