function sortWithKeyName($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,ACprivate function sortWithKeyName($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;}参考了https://www.cnblogs.com/zengdiao/p/6019290.html
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号