二维数组按照某个数组内的key来排序
题解如下:
function array_sort($arr,$key,$sort=0){
if(!is_array($arr) || empty($arr)) {
return false;
}
// 先循环把二维数组 转换为一位数组
foreach($arr as $item=>$items) {
$keysortval[] = $items[$key];
}
// 转换成功后 判断传过来的排序是0还是1
if($sort == 0 ) {
asort($keysortval); // 0 倒叙
} else {
arsort($keysortval); // 1正序
}
// 最后一步就简单许多 上面排序好的直接用
$data = array();
foreach($keysortval as $keys=>$vals) {
$data[$keys] = $arr[$keys]; // $arr[$keys] 就是二维数组的键 重组给$data即可 $data[] 是新的key $data[$keys] 是保留原有的key
}
return $data;
}
$arr = array();
$arr[] = array('volume' => 66, 'edition' => 2);
$arr[] = array('volume' => 86, 'edition' => 1);
$arr[] = array('volume' => 85, 'edition' => 6);
$arr[] = array('volume' => 98, 'edition' => 2);
$arr[] = array('volume' => 98, 'edition' => 6);
$arr[] = array('volume' => 67, 'edition' => 7);
array_sort($arr,'volume',0); // 此处调用