-5
直接从文档中使用示例,我看不出为什么我得到我的结果。PHP中的Usort多维数组不适用于我
function cmp($a, $b)
{
return strcmp($a["fruit"], $b["fruit"]);
}
$fruits[0]["fruit"] = 1000;
$fruits[1]["fruit"] = 600;
$fruits[2]["fruit"] = 2180;
echo ("<pre>");
echo " before \n";
print_r($fruits);
echo ("</pre>");
usort($fruits, "cmp");
echo ("<pre>");
echo " after \n";
print_r($fruits);
echo ("</pre>");
这些结果如下:
before
Array
(
[0] => Array
(
[fruit] => 1000
)
[1] => Array
(
[fruit] => 600
)
[2] => Array
(
[fruit] => 2180
)
)
after
Array
(
[0] => Array
(
[fruit] => 1000
)
[1] => Array
(
[fruit] => 2180
)
[2] => Array
(
[fruit] => 600
)
)
我想是usort指基于多维数组内的值来组织。有时它会对它进行排序,有时它只是给出随机顺序作为输出数组。我错过了什么吗?此外,这是defo不是一个重复的问题,请仔细阅读,本网站上没有任何内容。
_Am我错过了什么吗?是的,整数不是字符串,所以不要使用字符串比较函数。 – AbraCadaver
总是假设你最初错了。这不是PHP的功能被破坏;在这种情况下,它是用户的逻辑。学习如何正确识别您正在使用的类型和操作。您将数字作为字符串进行比较,PHP将适当地对这些字符串进行排序。 –