PHP中的array_multisort问题

时间:2012-08-14 12:10:57

标签: php arrays sorting

我正在使用此行根据名称字段按升序对我的二维数组进行排序。

 array_multisort($contact[0]['name'],SORT_DESC,$contact[0]['image'],$contact[0]['url'],$contact[0]['catimg'],$contact[0]['count']);

但有时它没有正确排序。

它有什么不对吗?

由于

2 个答案:

答案 0 :(得分:0)

如果您想使用array_multisort工作,则必须创建数据列,概要看起来如下:

$names = array();
$images = array();
$urls = array();
// ... add more as needed
// make rows of data for sorting
foreach ($contact as $contact_row) {
    $names[]  = $contact_row['name'];
    $images[] = $contact_row['image'];
    $urls[]   = $contact_row['url'];
    // ... add more as needed
}
array_multisort($names, SORT_DESC, $images, $urls, $contact); // the last one is the array you want to sort

var_export($contact); // at this point this should be ordered

答案 1 :(得分:0)

似乎,传递给函数的参数不是数组。

尝试使用usort:

usort($contact, function($a, $b){
    return strcmp($a['name'], $b['name']);
});