PHP에서 사용자 정의 순서 배열 정렬
PHP에서 배열 정렬은 일반적으로 비교 기반 알고리즘을 통해 수행됩니다. 그러나 사전 정의된 사용자 정의 순서에 따라 배열을 정렬해야 하는 상황이 있습니다.
각 하위 배열에 "id"와 "title"이라는 두 개의 키가 포함된 배열 배열을 생각해 보세요. 다음과 같이 특정 순서로 기본 배열을 정렬하고 싶습니다.
[3452342, 5867867, 7867867, 1231233]
이를 달성하려면 usort() 함수를 활용할 수 있습니다. 이 함수를 사용하면 배열 요소를 비교하는 방법을 정의하는 비교 함수를 지정할 수 있습니다.
이 경우 비교 함수는 클로저를 사용하여 사용자 정의 순서 배열에서 "id" 값의 위치를 비교합니다( $order):
usort($array, function ($a, $b) use ($order) { $pos_a = array_search($a['id'], $order); $pos_b = array_search($b['id'], $order); return $pos_a - $pos_b; });
비교 함수는 $order 배열의 "id" 값 위치를 $pos_a 및 $pos_b에 할당합니다. 그런 다음 이 위치를 빼서 순서를 결정합니다($pos_a가 $pos_b보다 작으면 $a가 $b 앞에 옵니다).
사용자 정의 순서 배열과 비교 기능을 사용하면 배열을 효과적으로 정렬할 수 있습니다. 미리 정의된 순서대로 배열합니다.
위 내용은 사용자 정의 순서에 따라 PHP 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!