-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將適當地對這些字符串進行排序。 –