谁能解释一下,为什么我的排序不能正常工作?
Can anyone explain, why my sorting doesn't work properly?
我想使用 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: Sort an array by the length of its values?,他们的解决方案工作得很好。我只想知道,为什么会这样?
提前致谢。
您的 "b" 没有拼写错误,没有“$”
将代码替换为:
if (strlen($a) > strlen($b))
return 1;
elseif (strlen($a) < strlen($b))
return -1;
else
return 0;
};
之后您的代码将正常工作:)
我想使用 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: Sort an array by the length of its values?,他们的解决方案工作得很好。我只想知道,为什么会这样? 提前致谢。
您的 "b" 没有拼写错误,没有“$”
将代码替换为:
if (strlen($a) > strlen($b))
return 1;
elseif (strlen($a) < strlen($b))
return -1;
else
return 0;
};
之后您的代码将正常工作:)