[英]do you know better performance solution for sorting array in array in array?
I want to sort the array based on their sku alphabetically and I wrote this program with three foraeach loop, I think I did not write it as the best solution, do you know any other better?what is your idea about it? 我想按字母顺序基于他们的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];
}
Assuming you want to sort just the outer array, all you need is a custom sort function: 假设您只想对外部数组进行排序,您只需要一个自定义排序函数:
usort($array, "sort_by_sku");
function sort_by_sku($a, $b) {
return strcmp($a["data"]["sku"], $b["data"]["sku"]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.