2 回答
TA贡献1790条经验 获得超9个赞
uasort简单地返回true/false取决于它是否成功完成。该数组已就地排序,因此您的代码应如下所示:
private function sortByLastName($data)
{
uasort($data, function($a, $b) {
$splitFirstItem = explode(',', $a);
$spliteSecondItem = explode(',', $b);
$firstItemElement = trim(end($splitFirstItem));
$secondItemElement = trim(end($spliteSecondItem));
return strcasecmp($firstItemElement, $secondItemElement);
});
return $data;
}
TA贡献1866条经验 获得超5个赞
如下更改您的功能。
private function sortByLastName($data)
{
uasort($data, function($a, $b) {
$splitFirstItem = explode(',', $a);
$spliteSecondItem = explode(',', $b);
$firstItemElement = trim(end($splitFirstItem));
$secondItemElement = trim(end($spliteSecondItem));
return strcasecmp($firstItemElement, $secondItemElement);
});
return $data;
}
这是因为 uasort 不返回数组而是更改传递给它的数组。它仅根据过程是否成功返回布尔值 true 或 false
- 2 回答
- 0 关注
- 216 浏览
添加回答
举报
