【发布时间】:2023-02-09 06:50:36
【问题描述】:
array(4) {
[D.Fletcher] = array(22) {
[games] = int() 2
[ab] = int() 6
[runs] = int() 2
[hits] = int() 2
}
[A.Slegers] = array(22) {
[games] = int() 3
[ab] = int() 0
[runs] = int() 0
[hits] = int() 0
}
[A.Eaton] = array(22) {
[games] = int() 1
[ab] = int() 2
[runs] = int() 0
[hits] = int() 0
}
[S.Ohtani] = array(22) {
[games] = int() 3
[ab] = int() 6
[runs] = int() 2
[hits] = int() 3
}
我希望能够从键的第三个字符开始对数组进行排序。
如果我使用 ksort,我会得到:
A.Eaton
A.Slegers
D.Fletcher
S.Ohtani
但我想要:
A.Eaton
D.Fletcher
S.Ohtani
A.Slegers
我可以按如下方式执行此 SQL: SELECT * FROM batters order by SUBSTRING(name, 3)
但我不知道如何用 PHP 排序。 我知道我可以拿到钥匙
$keys=array_keys($arr);
或者在一个循环中:
foreach ($arr as $key => $value) {
echo $key;
}
然后可能做一个 substr($key, 3) 但我无法弄清楚如何将它们放在一起进行排序。
【问题讨论】:
-
php.net/manual/en/function.uksort.php
uksort,然后在你的回调函数中使用 substring 来切断前 2 个字母和.,然后是它的substr($a,2) <=> substr($b,2)或排序函数中的类似内容。