지정된 키 이름으로 2차원 배열을 정렬하려면 모두가 가장 먼저 생각하는 것은 array_multisort 함수입니다. 이전에 array_multisort의 사용법에 대한 기사를 쓴 적이 있습니다.
더 이상 고민하지 않고 예를 살펴보겠습니다.
<?php
$data = array( 1001 => array( 'age' => 22, 'name' => '鸠摩智' ), 1007 => array( 'age' => 21, 'name' => '慕容复' ), 1004 => array( 'age' => 27, 'name' => '乔帮主' ) );
= array_column(, 'age'(, SORT_ASC, ();
조심성 있는 친구들은 키 이름이 재설정되어 0부터 시작한다는 것을 알게 될 것입니다. 분명히 이것은 우리가 원하는 결과가 아닐 수도 있는데, 키 이름을 변경하지 않고 유지하는 방법은 무엇일까요?
다른 예를 살펴보겠습니다.
$data = array( 1001 => array( 'age' => 22, 'name' => '鸠摩智' ), 1007 => array( 'age' => 21, 'name' => '慕容复' ), 1004 => array( 'age' => 27, 'name' => '乔帮主' ) );//根据字段age对数组$data进行降序排列$data = arraySort($data, "age", "desc" );print_r($data);/** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } if ($type == 'asc') { natsort($keysvalue); } if ($type == 'desc') { natsort($keysvalue); $keysvalue = array_reverse($keysvalue, TRUE); // 将原数组中的元素顺序翻转,如果第二个参数指定为 true,则元素的键名保持不变 } foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
여기서 arraySort 함수도 단순화할 수 있으며 처리 결과는 동일합니다.
/** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } $type == 'asc' ? asort($keysvalue) : arsort($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
위 결과에서 볼 수 있는 것은 다음과 같습니다.
키 이름은 변경되지 않고 그대로 유지됩니다. 구현 원리는 매우 간단합니다. 먼저 키 이름을 꺼낸 다음 키 이름을 정렬한 다음 해당 키 이름에 값을 할당하여 새 배열을 구성하고 반환합니다.
보시다시피 여기서는 주로 php
asort() 对关联数组按照键值进行升序排序。 arsort()对关联数组按照键值进行降序排序。 natsort() 实现了“自然排序”,即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短的优先。数组的索引与单元值保持关联, 注意:在自然排序算法中,数字 2 小于 数字 10。在计算机排序算法中,10 小于 2,因为 "10" 中的第一个数字小于 2。
의 여러 핵심 정렬 기능을 사용합니다. 관련 학습 권장사항: php 프로그래밍(동영상)
위 내용은 키 이름을 변경하지 않고 PHP에서 2차원 배열을 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!