PHP에서 배열은 데이터 구성 및 저장을 위한 강력한 데이터 구조를 제공합니다. 그러나 내부 배열 내의 특정 값을 기반으로 다차원 배열을 정렬하는 것은 어려운 작업이 될 수 있습니다.
다음 데이터 구조를 가진 PHP 해시 테이블을 고려해보세요.
[ [ "type" => "suite", "name" => "A-Name" ], [ "type" => "suite", "name" => "C-Name" ], [ "type" => "suite", "name" => "B-Name" ] ]
목표는 내부 배열의 "name" 키를 기준으로 이 데이터 구조를 정렬하는 것입니다.
다양한 PHP 함수를 사용하여 배열을 정렬할 수 있습니다.
그러나 이러한 함수 중 어느 것도 내부 배열 내의 키를 기반으로 한 정렬을 직접 지원하지 않습니다.
이러한 한계를 극복하기 위해 사용자 정의 정렬 기능을 정의하여 내부 배열 내에서 원하는 값을 비교할 수 있습니다. 이는 usort 함수를 사용하여 수행할 수 있습니다.
<code class="php">function cmp($a, $b) { return $b['name'] - $a['name']; }</code>
이 함수는 내부 배열의 "name" 키를 비교하고 첫 번째 배열의 이름이 다음보다 큰 경우 음수 값을 반환합니다. 두 번째 배열 이름.
비교 함수가 정의되면 usort 함수를 사용하여 배열을 정렬하는 데 사용할 수 있습니다.
<code class="php">usort($mydata, "cmp");</code>
사용자 정의 정렬 기능에 대한 대체 솔루션은 정렬할 값만 포함하는 새 배열을 만드는 것입니다. 이는 중첩 루프와 조건문을 사용하여 수행할 수 있습니다.
<code class="php">function array_sort($array, $on, $order=SORT_ASC) { // ... return $new_array; }</code>
이 함수는 정렬할 배열, 정렬할 키 및 선택적 순서(오름차순 또는 내림차순)를 사용합니다. 정렬된 데이터가 포함된 새 배열을 반환합니다.
array_sort 함수는 다음과 같이 사용할 수 있습니다.
<code class="php">$mydata = [ ['type' => 'suite', 'name' => 'A-Name'], ['type' => 'suite', 'name' => 'C-Name'], ['type' => 'suite', 'name' => 'B-Name'] ]; $sorted_data = array_sort($mydata, 'name', SORT_ASC); print_r($sorted_data);</code>
위 내용은 PHP에서 내부 배열 값을 기준으로 다차원 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!