Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencari Nilai dengan Cekap dalam Tatasusunan Berbilang Dimensi PHP?

Bagaimana untuk Mencari Nilai dengan Cekap dalam Tatasusunan Berbilang Dimensi PHP?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 05:11:13129semak imbas

How to Efficiently Search for a Value in a PHP Multidimensional Array?

Pencarian Tatasusunan Berbilang Dimensi PHP mengikut Nilai

Apabila memanipulasi tatasusunan berbilang dimensi, selalunya perlu untuk mencari kunci khusus berdasarkan nilai yang sepadan. Tugasan ini boleh dicapai menggunakan pelbagai teknik dalam PHP.

Pilihan 1: Menggunakan array_search() dan array_column()

Untuk menggunakan pendekatan ini, anda perlu memastikan anda menggunakan PHP versi 5.5.0 atau lebih tinggi.

$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));

Penjelasan:

  • array_column() mengekstrak lajur kunci daripada tatasusunan. Dalam kes ini, ia mendapatkan semula nilai 'slug' ke dalam tatasusunan baharu.
  • array_search() mencari nilai yang dikehendaki ('breville-one-touch-tea-maker-BTM800XL') dalam tatasusunan yang dikembalikan oleh array_column(), menyediakan kunci padanan jika ditemui.

Pilihan 2: Fungsi Tersuai dengan array_walk_recursive()

function array_search_multidim($array, $column, $key) {
    $result = null;
    array_walk_recursive($array, function ($value, $index) use ($column, $key, &$result) {
        if ($index === $column && $value === $key) {
            $result = $index;
        }
    });
    return $result;
}
$key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');

Penjelasan:

  • array_walk_recursive() berulang ke atas semua elemen tatasusunan, termasuk yang berada dalam tahap bersarang.
  • Fungsi penutupan menyemak indeks setiap nilai ($indeks) terhadap lajur yang ditentukan ($lajur) dan membandingkan nilainya ($nilai) dengan kunci yang diingini ($kunci).
  • Jika padanan ditemui, ia memperuntukkan indeks ($indeks) elemen padanan kepada pembolehubah $hasil.

Pertimbangan Prestasi

Pendekatan array_search() dan array_column() umumnya menawarkan prestasi yang lebih baik berbanding dengan kaedah array_walk_recursive(). Walau bagaimanapun, kedua-dua teknik ini sesuai untuk kebanyakan aplikasi, dan pilihan khusus akan bergantung pada keperluan individu.

Nota Tambahan

  • Kaedah ini memerlukan kunci wujud pada tahap yang sama dengan nilai sedang dicari.
  • Mereka mencari padanan nilai yang tepat; padanan separa tidak disokong.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai dengan Cekap dalam Tatasusunan Berbilang Dimensi PHP?. 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