Pembelajaran tatasusunan PHP: Bagaimana untuk menetapkan semula indeks tatasusunan berbilang dimensi

青灯夜游
Lepaskan: 2023-03-12 08:28:01
asal
2966 orang telah melayarinya

Dalam artikel sebelumnya "Cara membuang elemen kosong atau pendua dalam pembelajaran tatasusunan PHP", kami memperkenalkan kaedah elemen kosong dan pendua dalam tatasusunan, iaitu kaedah memadam elemen kosong dan elemen pendua dalam tatasusunan Mari kita bincangkan secara ringkas tentang kaedah menetapkan semula indeks tatasusunan satu dimensi. Indeks tatasusunan satu dimensi boleh ditetapkan semula, tetapi bagaimana untuk menetapkan semula indeks tatasusunan dua dimensi atau bahkan tatasusunan berbilang dimensi? Mari perkenalkan kaedah di bawah.

→Cadangan berkaitan: Ringkasan siri pembelajaran tatasusunan PHP (terus dikemas kini~)

Pertama sekali, kita tahu daripada perkara di atas bahawa satu dimensi Jika anda ingin menetapkan semula indeks tatasusunan, ia adalah sangat mudah. ​​Hanya gunakan fungsi array_values($array). Fungsi

array_values() adalah untuk mengembalikan nilai semua elemen dalam tatasusunan Ia sangat mudah digunakan Dengan hanya satu parameter yang diperlukan $array, ia boleh mengembalikan tatasusunan yang mengandungi semua nilai dalam tatasusunan yang diberikan, tetapi nama kunci tidak disimpan. Tatasusunan yang dikembalikan akan dalam bentuk tatasusunan diindeks, dengan indeks tatasusunan bermula pada 0 dan meningkat sebanyak 1.

Kita boleh menggunakan fungsi array_values() untuk menyusun semula tatasusunan dengan subskrip elemen huru-hara, iaitu indeks bermula dari 0 dan meningkat sebanyak 1, fungsi ini bukan sahaja boleh digunakan untuk mengindeks tatasusunan, tetapi juga untuk mengaitkan Array boleh menukar tatasusunan bersekutu menjadi tatasusunan diindeks.

Untuk menetapkan semula indeks tatasusunan berbilang dimensi, anda juga perlu menggunakan fungsi array_values(). Di bawah kami terus memberikan kaedah pelaksanaan:

function reform_keys($array){
    if(!is_array($array)){
        return $array;
    }
    $keys = implode('', array_keys($array));
    if(is_numeric($keys)){
        $array = array_values($array);
    }
    $array = array_map('reform_keys', $array);
    return $array;
};
Salin selepas log masuk

Uji, terdapat tatasusunan berbilang dimensi berikut

$post = [
    0 => [
        'title' => 'xxx联票',
        'price' => 368.00,
        'items' => [
            '33' => [
                'scenic_id' => 33,
                'products' => [
                    'goods_id' => 13
                ]
            ],
            '1500' => [
                'scenic_id' => 1500,
                'products' => [
                    'goods_id' => 57
                ]
            ],
        ],
        'tickets' => 9
    ],
    10 => [
        'title' => 'zzz联票',
        'price' => 500.00,
        'items' => [
            '157' => [
                'scenic_id' => 157,
                'products' => [
                    'goods_id' => 77
                ],
                'attr' => [
                    '50' => [
                        'item' => '午场'
                    ],
                    '55' => [
                        'item' => '可退'
                    ]
                ]
            ],
            '19' => [
                'scenic_id' => 19,
                'products' => [
                    'goods_id' => 87
                ]
            ]
        ],
        'tickets' => 3
    ],
];
Salin selepas log masuk

Panggil fungsi reform_keys() untuk menetapkan semula indeks $ tatasusunan pos, dan keluarkan tatasusunan Posted baharu:

$list = reform_keys($post);
var_dump($list);
Salin selepas log masuk

Hasil output ialah:

Pembelajaran tatasusunan PHP: Bagaimana untuk menetapkan semula indeks tatasusunan berbilang dimensi

Ia boleh dilihat bahawa indeks bagi semua peringkat dalam tatasusunan berbilang dimensi $post telah ditetapkan semula dan mula mengira dari 0!

Izinkan saya memperkenalkan kepada anda fungsi yang digunakan di dalamnya:

  • array_keys($array): Dapatkan semua nama kunci dalam tatasusunan $array;

  • : Sambungkan elemen dalam tatasusunan kunci bersama-sama dan kembalikan rentetan

    . $keys=implode('', array_keys($array))$keys

  • : Semak sama ada pembolehubah $keys ialah nombor atau rentetan angka.

    is_numeric($keys)

  • : Dapatkan semua nilai, iaitu tetapkan semula indeks

    array_values($array)

  • : Gunakan pada setiap elemen $ array array Fungsi Panggilan balik reform_keys().

    array_map('reform_keys', $array)array_map() mengembalikan tatasusunan Kandungan tatasusunan adalah hasil panggilan balik pada elemen tatasusunan1 dalam tertib indeks (apabila terdapat lebih banyak tatasusunan, unsur tatasusunan juga akan dihantar masuk). Bilangan parameter fungsi panggil balik mesti sepadan dengan bilangan tatasusunan dalam argumen array_map().


  • Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →
Tutorial video php

Akhir sekali, saya mengesyorkan tutorial video percuma tentang tatasusunan PHP:

Penjelasan video fungsi tatasusunan fungsi PHP

, datang dan pelajari!

Atas ialah kandungan terperinci Pembelajaran tatasusunan PHP: Bagaimana untuk menetapkan semula indeks tatasusunan berbilang dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan