bey*_*ski 1 php arrays sorting multidimensional-array
即使keys()如何按pos属性对此数组进行排序name, store_id, product etc.
[Attributes] => Array
(
    [name] => Array
        (
            [pos] => 30
        )
    [store_id] => Array
        (
            [pos] => 10
        )
    [product] => Array
        (
            [pos] => 20
        )
)
编辑:性能当然很重要.
看看PHP函数array_multisort.
http://php.net/manual/en/function.array-multisort.php
评论中有一个示例函数,应该没问题:
function array_orderby()
{
    $args = func_get_args();
    $data = array_shift($args);
    foreach ($args as $n => $field) {
        if (is_string($field)) {
            $tmp = array();
            foreach ($data as $key => $row)
                $tmp[$key] = $row[$field];
            $args[$n] = $tmp;
            }
    }
    $args[] = &$data;
    call_user_func_array('array_multisort', $args);
    return array_pop($args);
}
// $dataArray is the array that contains your data
$sorted = array_orderby($dataArray, 'pos', SORT_DESC);
您可以使用uasort()它来定义排序逻辑并维护关联索引.请注意,它会更改原始数组,并仅根据成功返回布尔值.
uasort($your_array, function($a, $b) {
    return $a['pos'] > $b['pos'];
});
我的示例工作> = PHP 5.3,但对于旧版本,您也可以使用普通的比较函数.
请参阅uasort()文档了解详细信
| 归档时间: | 
 | 
| 查看次数: | 3586 次 | 
| 最近记录: |