/开始更新/
如果我的目标是单个数组,而不是数组数组,那么下面的解决方案将起作用。
这只是关联数组的一个块,每个分组的块都需要排序。请参见更新的数组。
我试过以下几次,但似乎没有击中子阵:
function natorder($a, $b){
return strnatcmp( $a['name'], $b['name'] );
}
usort($array, 'natorder');
/更新结束/
尝试变化
usort
,
sort
以及以下功能:
function sortNames($a, $b){
return $a['name'] - $b['name'];
}
我无法对数组排序:
[abc-abc] => Array
(
[0] => Array
(
[name] => abc-abc-34
[qty] => 4
[sub_qty] => 4
[area] => G11
)
[1] => Array
(
[name] => abc-abc-45
[qty] => 145
[sub_qty] => 146
[area] => G11
)
[2] => Array
(
[name] => abc-abc-67
[qty] => 215
[sub_qty] => 100,
116
[area] => T,
G12
)
[3] => Array
(
[name] => abc-abc-56
[qty] => 0
)
)
[def-def] => Array
(
[0] => Array
(
[name] => def-def-34
[qty] => 4
[sub_qty] => 4
[area] => G11
)
[1] => Array
(
[name] => def-def-45
[qty] => 145
[sub_qty] => 146
[area] => G11
)
[2] => Array
(
[name] => def-def-56
[qty] => 0
)
)
以下内容:
[abc-abc] => Array
(
[0] => Array
(
[name] => abc-abc-34
[qty] => 4
[sub_qty] => 4
[area] => G11
)
[1] => Array
(
[name] => abc-abc-45
[qty] => 145
[sub_qty] => 146
[area] => G11
)
[2] => Array
(
[name] => abc-abc-56
[qty] => 0
)
[3] => Array
(
[name] => abc-abc-67
[qty] => 215
[sub_qty] => 100,
116
[area] => T,
G12
)
)
[def-def] => Array
(
[0] => Array
(
[name] => def-def-34
[qty] => 4
[sub_qty] => 4
[area] => G11
)
[1] => Array
(
[name] => def-def-45
[qty] => 145
[sub_qty] => 146
[area] => G11
)
[2] => Array
(
[name] => def-def-56
[qty] => 0
)
)
是否需要说明中不存在的附加密钥
abc-abc-56
?是否有替代工具或功能我应该使用?
名称的格式总是3个字母,一个破折号,后面跟着3个字母,但之后会随着其他字符和数字的变化而变化。所以可能是:
ABC-ABC-1、ABC-ABC1、ABC.1或ABC-ABC-1
但我最关心的是第一个模式被正确排序。
非常感谢您的评论!