我想排序一个多维数组,其中每个数组都是一个对象。
的例子http://php.net/manual/en/function.array-multisort.php表示需要创建要对
进行排序的列的数组foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
,但我得到以下错误,如果我格式化我的请求在这个格式:
可捕获的致命错误:类stdClass的对象不能转换为字符串
代码如下:
foreach ($mw_users as $key => $value) {
$last_name[$key] = $row['last_name'];
}
array_multisort($last_name, SORT_ASC, $mw_users);
为要排序的每一列定义一个数组,并使用对象引用语法添加列值:
// Obtain a list of columns
foreach ($mw_users as $mw_user) {
$lastnames[] = $mw_user->last_name;
$firstnames[] = $mw_user->first_name;
}
// Sort the data with volume descending, edition ascending
// Add $mw_users as the last parameter, to sort by the common key
array_multisort($lastnames, SORT_ASC, $firstnames, SORT_ASC, $mw_users);
类似于排序数据库结果:http://php.net/...array-multisort.php....
在PHP中对对象数组进行排序时,它有助于重写__tostring()魔术方法。通过这种方式,各种排序方法将对象视为可比较的对象。例如,人员对象可以输出该人员的名称或人员id。