你知道更好的性能解决方案在数组中的数组排序吗?

时间:2014-04-01 16:29:00

标签: php arrays sorting

我想按字母顺序基于他们的sku对数组进行排序,我用三个foraeach循环编写了这个程序,我想我没有把它写成最好的解决方案,你知道其他更好吗?你对它的看法是什么?

$array[] =  array('data' => array('entity_id' => 3446,'sku' => 'A'));
$array[] =  array('data' => array('entity_id' => 3546,'sku' => 'D'));
$array[] =  array('data' => array('entity_id' => 7446,'sku' => 'C'));
$array[] =  array('data' => array('entity_id' => 2446,'sku' => 'B'));
$array[] =  array('data' => array('entity_id' => 7446,'sku' => 'E'));
$array[] =  array('data' => array('entity_id' => 9446,'sku' => 'F'));

foreach ($array as $key => $data) {
    foreach ($data as $k=> $v)
        {
    $newarray[$key]  = $v['sku'];
        }
            }

asort($newarray);

foreach ( $newarray as $k=>$v)
$keys[]=$k;

$result=array();
foreach($keys as $k=>$v) {
    $result[$k] = $array[$v];
}

1 个答案:

答案 0 :(得分:2)

假设您只想对外部数组进行排序,您只需要一个自定义排序函数:

usort($array, "sort_by_sku");

function sort_by_sku($a, $b) {
    return strcmp($a["data"]["sku"], $b["data"]["sku"]);
}