PHP array_multisort(array_column($billList, 'diy_sort'), SORT_ASC, ['diy_sort']); SORT_ASC设置无效
时间: 2024-10-24 13:09:37 浏览: 30
`array_multisort()`函数在使用自定义排序数组(如 `$diy_sort`)时,如果你遇到 `'SORT_ASC' 设置无效` 的错误,可能是因为以下几个原因:
1. **自定义键不存在**:确认提供的键 `'diy_sort'` 是否存在于原始数组 `$billList` 中。如果不是,你需要修改`array_column()`的参数,传入实际存在的键。
2. **键未作为数组列返回**:`array_column()`可能没有正确地提取出你想要排序的数据。检查它的参数是否正确,比如是否指定了正确的索引和数据源。
3. **自定义排序数组有误**:`['diy_sort']` 应该是一个包含排序规则的数组。如果你希望所有的 `'diy_sort'` 都按升序排列,你应该直接传递 `'diy_sort'`,而不是一个数组。如果需要自定义排序,你应该传递一个关联数组,比如 `['diy_sort' => SORT_DESC]` 表示降序排列。
4. **排序函数冲突**:如果你之前设置了其他的排序函数,可能会影响到`SORT_ASC`。确保在调用`array_multisort()`前,没有其他影响全局排序的函数设置。
修正这个问题后,尝试以下代码:
```php
$diy_sort_key = 'your_custom_sort_key';
$sorted_billList = array_multisort(array_column($billList, $diy_sort_key), ASC, $billList, $diy_sort_key);
```
或者如果需要自定义排序规则:
```php
$custom_sort_rules = ['diy_sort' => SORT_DESC];
array_multisort(array_column($billList, 'diy_sort'), $custom_sort_rules['diy_sort'], $billList, 'diy_sort');
```
记得替换 `'your_custom_sort_key'` 为你实际使用的键名。
阅读全文