我想使用usort()
函数按其值的长度排序数组。下面是我的函数:
$max_min_length = function ($a, $b) {
if (strlen($a) > strlen(b))
return 1;
elseif (strlen($a) < strlen(b))
return -1;
else
return 0;
};
$array = ["abcd","abc","de","hjjj","g","wer"];
usort($array, $max_min_length);
print_r($array);
输出为:
Array ( [0] => g [1] => abcd [2] => abc [3] => hjjj [4] => de [5] => wer )
我不明白,为什么它不能正确排序。我错过什么了吗?我看过PHP:排序数组的值的长度?他们的解决方案很有效。我只是想知道,为什么会这样?
你把"b"打错了,没有"$"
将代码替换为
if (strlen($a) > strlen($b))
return 1;
elseif (strlen($a) < strlen($b))
return -1;
else
return 0;
};
之后,你的代码将正常工作:)