Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Isih Tatasusunan PHP Berbilang Dimensi mengikut Pelbagai Medan?

Bagaimanakah Saya Boleh Isih Tatasusunan PHP Berbilang Dimensi mengikut Pelbagai Medan?

DDD
DDDasal
2024-11-22 05:53:14963semak imbas

How Can I Sort a Multidimensional PHP Array by Multiple Fields?

Mengisih Tatasusunan Berbilang Dimensi mengikut Nilai Medan Berbilang

Dalam PHP, mengisih tatasusunan berbilang dimensi dengan berbilang nilai medan boleh dicapai menggunakan array_multisort().

Pertimbangkan perkara berikut tatasusunan:

$data = [
    [
        "destination" => "Sydney",
        "airlines" => "airline_1",
        "one_way_fare" => 100,
        "return_fare" => 300
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_2",
        "one_way_fare" => 150,
        "return_fare" => 350
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_3",
        "one_way_fare" => 180,
        "return_fare" => 380
    ]
];

Untuk mengisih tatasusunan ini mengikut return_fare dalam tertib menaik dan one_way_fare dalam tertib menaik, gunakan array_multisort():

// Extract specific fields into individual arrays
$return_fare = array_column($data, 'return_fare');
$one_way_fare = array_column($data, 'one_way_fare');

// Sort arrays using multiple criteria
array_multisort($return_fare, SORT_ASC, $one_way_fare, SORT_ASC, $data);

// Print sorted array
print_r($data);

Kaedah Alternatif:

  • array_orderby() Fungsi: Untuk penyelesaian yang ringkas, pertimbangkan untuk menggunakan fungsi array_orderby() , yang menyediakan pembalut di sekeliling array_multisort().
  • **array_column() dengan array_multisort()**: Untuk mengelakkan lelaran pada tatasusunan, gunakan array_column()` untuk mengekstrak nilai medan tertentu sebelum mengisih.
array_multisort(array_column($data, 'return_fare'), SORT_ASC,
                array_column($data, 'one_way_fare'), SORT_ASC,
                $data);

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Tatasusunan PHP Berbilang Dimensi mengikut Pelbagai Medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn