function sort_with_keyName($arr,$orderby='desc'){
//在內存的另一處 $a 復制內容與 $arr 一樣的數組
foreach($arr as $key => $value)
$a[$key]=$value;
if($orderby== 'asc'){//對數組 $arr 進行排序
asort($arr);
}else{
arsort($arr);
}
/*創建一個以原始數組的鍵名為元素值 (鍵值) 的
*數組 $b, 其元素 (鍵值) 順序,與排好序的數組 $arr 一致。
*/
$index=0;
foreach ($arr as $keys => $values) //按排序后數組的順序
foreach($a as $key => $value) //在備份數組中尋找鍵值
if ($values==$value)//如果找到鍵值
$b[$index++]=$key; // 則將數組 $b 的元素值,設置成備份數組 $a 的鍵名
//返回用數組 $b 的鍵值作為鍵名,數組 $arr 的鍵值作為鍵值,所組成的數組
return array_combine($b, $arr);
}
$arr = array('AA'=>3,'AB'=>1,'AC'=>2);
排序 123 保留 AA,AB,AC
private function sort_with_keyName($arr,$orderby='desc'){
$new_array = array();
$new_sort = array();
foreach($arr as $key => $value){
$new_array[] = $value;
}
if($orderby=='asc'){
asort($new_array);
}else{
arsort($new_array);
}
foreach($new_array as $k => $v){
foreach($arr as $key => $value){
if($v==$value){
$new_sort[$key] = $value;
unset($arr[$key]);
break;
}
}
}
return $new_sort;
}