Array_multisort使用多维对象数组



我想排序一个多维数组,其中每个数组都是一个对象。

的例子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。

相关内容

  • 没有找到相关文章

最新更新