찾다

 >  Q&A  >  본문

PHP 다차원 배열 정렬 문제

이 문제는 Mysql의 order by와 다소 유사합니다. 필요한 것은 배열의 다양한 필드 정렬을 시뮬레이션하는 것입니다.

다음과 같은 배열이 있다고 가정합니다:

$beforeSort = [
    "0" => ["이름" => "장산", "영어" => 60, "수학" => 50
    "1" => ["이름" => "이영" => 50, "중국어" => 70
    "2" => ["이름" => "老王", "english" => 30, "math" => 80
];

이제 배열에서 chinese 순서를 따라야 합니다. 동일한 경우 math 순서를 따라야 합니다. 최종 결과는 다음과 같습니다.< /p>

$afterSort = [
    "2" => ["이름" => "老王", "english" => 30, "math" => 80
    "0" => ["이름" => "장산", "영어" => 60, "수학" => 50
    "1" => ["이름" => "이영" => 50, "중국어" => 70
];

이를 달성할 수 있는 다른 방법이 있나요?

滿天的星座滿天的星座2752일 전593

모든 응답(9)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-05-16 13:10:20

    제가 직접 사용하는 버전입니다. 사용 방법:

    으아아아 으아아아

    회신하다
    0
  • 迷茫

    迷茫2017-05-16 13:10:20

    으아악

    결과 인쇄:

    으아악

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:10:20

    배열을 집합으로 변환한 후 처리할 수 있습니다. PHP 컬렉션을 사용하여 구현된 정렬 방법은 다양한 복잡한 정렬에 특화되어 있습니다

    회신하다
    0
  • PHPz

    PHPz2017-05-16 13:10:20

    <?php
    //이제 배열에서 중국어 순서를 따라야 합니다. 동일하면 수학 순서를 따라야 합니다. 최종 결과는 다음 배열이어야 합니다.
    $beforeSort = [

    으아악

    ];

    $data_math = array_column($beforeSort,'math');
    $data_chinese = array_column($beforeSort,'chinese');
    array_multisort($data_chinese,SORT_ASC,$data_math,SORT_ASC,$beforeSort); );

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:10:20

    으아아아

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:10:20

    ///답은 윗집 아저씨한테 빌리세요

    으아아아

    회신하다
    0
  • 某草草

    某草草2017-05-16 13:10:20

    다차원 배열을 정렬하려면 array_multisort를 구현할 수 있는 공식 함수가 있습니다

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:10:20

    으아악

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:10:20

    $beforeSort = [

    으아아아

    ];

    foreach($beforeSort as $key => $value) {

    으아아아

    }
    array_multisort($chinese, SORT_ASC, $math, SORT_ASC, $beforeSort);
    print_r($beforeSort);

    회신하다
    0
  • 취소회신하다