Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengisih Tatasusunan PHP Berbilang Dimensi mengikut Nilai Tatasusunan Dalam?

Bagaimana untuk Mengisih Tatasusunan PHP Berbilang Dimensi mengikut Nilai Tatasusunan Dalam?

DDD
DDDasal
2024-11-03 06:21:03697semak imbas

How to Sort a Multi-Dimensional PHP Array by an Inner Array Value?

Mengisih Tatasusunan PHP Berbilang Dimensi dengan Nilai Tatasusunan Dalam

Untuk mengisih tatasusunan PHP berbilang dimensi berdasarkan nilai tertentu dalam tatasusunan dalam, anda boleh menggunakan fungsi isihan tersuai.

Fungsi Isih Tersuai:

<code class="php">function array_sort($array, $on, $order = SORT_ASC) {
    $new_array = [];
    $sortable_array = [];

    if (count($array) > 0) {
        foreach ($array as $key => $value) {
            if (is_array($value)) {
                foreach ($value as $key2 => $value2) {
                    if ($key2 == $on) {
                        $sortable_array[$key] = $value2;
                    }
                }
            } else {
                $sortable_array[$key] = $value;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
                break;
            case SORT_DESC:
                arsort($sortable_array);
                break;
        }

        foreach ($sortable_array as $key => $value) {
            $new_array[$key] = $array[$key];
        }
    }

    return $new_array;
}</code>

Penggunaan:

<code class="php">$list = array(
    array('type' => 'suite', 'name' => 'A-Name'),
    array('type' => 'suite', 'name' => 'C-Name'),
    array('type' => 'suite', 'name' => 'B-Name')
);

$list = array_sort($list, 'name', SORT_ASC);

print_r($list);</code>

Output:

<code class="php">array(3) { [0]=> array(2) { ["type"]=> string(5) "suite" ["name"]=> string(6) "A-Name"    } [2]=> array(2) { ["type"]=> string(5) "suite" ["name"]=> string(6) "B-Name" } [1]=> array(2) { ["type"]=> string(5) "suite" ["name"]=> string(6) "C-Name" } }</code>

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan PHP Berbilang Dimensi mengikut Nilai Tatasusunan Dalam?. 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
Artikel sebelumnya:PHP 8.3 Dikeluarkan!Artikel seterusnya:PHP 8.3 Dikeluarkan!