我在思考如何做到这一点时遇到了一些问题。 我有一个 PHP 数组
array(131) {
["BLANF "]=>
array(3) {
["line_3"]=>
string(4) "3.92"
["line_1"]=>
string(1) "6"
["line_2"]=>
string(2) "14"
}
["BLOOH "]=>
array(3) {
["line_3"]=>
string(4) "2.00"
["line_1"]=>
string(1) "20"
["line_2"]=>
string(1) "6"
}
}
我需要根据 line_1 的值进行排序。
uasort()
一起使用来维护数组的索引。
以下是如何使用
uasort()
按 line_1
排序...更改为按嵌套数组中的任何其他键排序很简单。
<?php
// The custom comparison function
function cmp($a, $b)
{
if ($a["line_1"] == $b["line_1"]) {
return 0;
}
return ($a["line_1"] < $b["line_1"]) ? -1 : 1;
}
// Sort the array using your custom comparison
uasort($array, 'cmp');
// Make sure we got the right result
print_r($array);
?>
(我更改了
line_1
数字,以便排序真正执行某些操作)
在这种情况下,PHP 会为您处理类型,但您应该注意您有字符串并将它们转换为数字的事实。如果您不确定会发生什么,请将字符串转换为浮点数或整数。这很重要,因为 PHP 可以使用比较运算符按字母顺序比较字符串....因此,如果字母或逗号或其他内容有可能潜入您的数组值,那么您可以类型转换为 int (
(int) $a["line_1"]
) 或 float ( (float) $a["line_1"]
)。