Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengisih Tatasusunan PHP Multidimensi mengikut Nilai Sub-array?

Bagaimana untuk Mengisih Tatasusunan PHP Multidimensi mengikut Nilai Sub-array?

DDD
DDDasal
2024-12-06 00:54:10248semak imbas

How to Sort a Multidimensional PHP Array by Sub-array Value?

Mengisih Tatasusunan Berbilang Dimensi mengikut Nilai Sub-tatasusunan dalam PHP

Dalam PHP, tatasusunan boleh berbilang dimensi, bermakna ia boleh mengandungi tatasusunan dalam tatasusunan . Kes penggunaan biasa ialah mengisih tatasusunan sedemikian berdasarkan kunci tertentu dalam subtatasusunan bersarang.

Isih mengikut Kunci Rentetan

Pertimbangkan tatasusunan berikut:

$array = [
    [
        'configuration_id' => 10,
        'id' => 1,
        'optionNumber' => '3',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 9,
        'id' => 1,
        'optionNumber' => '2',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 8,
        'id' => 1,
        'optionNumber' => '1',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ]
];

Untuk mengisih tatasusunan ini dalam tertib menaik berdasarkan kekunci 'optionNumber', kita boleh menggunakan usort bersama-sama dengan fungsi tanpa nama:

usort($array, function ($a, $b) {
    return strcmp($a['optionNumber'], $b['optionNumber']);
});

Fungsi ini membandingkan nilai 'optionNumber' setiap sub-tatasusunan dan mengembalikan 1 jika nilai pertama lebih besar, -1 jika lebih kecil atau 0 jika sama. Perbandingan ini adalah sensitif huruf besar dan kecil.

Isih mengikut Kunci Integer

Jika kekunci 'optionNumber' mengandungi integer, kita boleh menggunakan fungsi berikut:

usort($array, function ($a, $b) {
    return $a['optionNumber'] - $b['optionNumber'];
});

Perbandingan ini akan mengisih tatasusunan dalam berangka menaik pesanan.

Pertimbangan

  • Untuk PHP versi 5.3 dan ke atas, gunakan operator kapal angkasa (<=>) dan bukannya penolakan untuk mengelakkan limpahan/pemangkasan masalah.
  • Perhatikan bahawa penyelesaian ini menganggap kunci 'optionNumber' wujud dalam semua sub-tatasusunan dan daripada jenis yang dijangkakan.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan PHP Multidimensi mengikut Nilai Sub-array?. 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