Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Mencari mengikut key=value dalam Array Multidimensi dalam PHP

Cara Mencari mengikut key=value dalam Array Multidimensi dalam PHP

PHPz
PHPzasal
2024-08-28 10:31:36965semak imbas

How to Search by key=value in a Multidimensional Array in PHP

PHP (Hypertext Preprocessor): PHP (Hypertext Preprocessor) ialah bahasa skrip bahagian pelayan sumber terbuka yang digunakan secara meluas yang direka khusus untuk pembangunan web. Ia pada asalnya dicipta oleh Rasmus Lerdorf pada tahun 1994 dan sejak itu telah berkembang menjadi bahasa berkuasa yang digunakan oleh berjuta-juta pembangun di seluruh dunia.

PHP digunakan terutamanya untuk membangunkan halaman web dinamik dan aplikasi web. Ia membolehkan pembangun membenamkan kod PHP dalam HTML, menjadikannya mudah untuk mencampurkan logik sisi pelayan dengan lapisan pembentangan. Skrip PHP dilaksanakan pada pelayan, dan HTML yang terhasil dihantar ke pelayar klien.

Dalam PHP, terdapat beberapa cara untuk mencari pasangan nilai kunci tertentu dalam tatasusunan berbilang dimensi.

Berikut adalah tiga pendekatan yang biasa digunakan:

  • Menggunakan gelung foreach

  • Menggunakan array_filter() dan array_column()

  • Menggunakan array_search() dengan array_column()

Menggunakan gelung foreach

Berikut ialah contoh menggunakan gelung foreach untuk mencari pasangan nilai kunci dalam tatasusunan berbilang dimensi dalam PHP:

<?php
$searchKey = 'key';
$searchValue = 'value';
$foundElement = null;
foreach ($array as $subarray) {
   if (isset($subarray[$searchKey]) && $subarray[$searchKey] === $searchValue) {
      $foundElement = $subarray;
         break;
   }
}
if ($foundElement !== null) {
   // Key-value pair found
   // Do something with $foundElement or the matching element
} else {
   // Key-value pair not found
   // Handle the case when the pair is not found
}
?>

Dalam contoh ini, gelung foreach berulang pada setiap subarray dalam tatasusunan berbilang dimensi. Ia menyemak sama ada kunci yang dikehendaki wujud dalam subarray menggunakan isset(), dan jika nilai kunci itu sepadan dengan nilai carian. Jika padanan ditemui, pembolehubah $foundElement diberikan subarray dan gelung ditamatkan menggunakan break.

Selepas gelung, anda boleh menyemak sama ada $foundElement bukan batal untuk menentukan sama ada pasangan nilai kunci ditemui. Jika ia bukan nol, anda boleh melakukan operasi dengan $foundElement atau elemen padanan. Jika ia kekal batal, anda boleh mengendalikan kes tersebut apabila pasangan tidak ditemui mengikut keperluan anda.

Menggunakan array_filter() dan array_column()

Berikut ialah contoh penggunaan array_filter() dan array_column() untuk mencari pasangan nilai kunci dalam tatasusunan berbilang dimensi dalam PHP:

$searchKey = 'key';
$searchValue = 'value';
$result = array_filter($array, function ($subarray) use ($searchKey, $searchValue) {
    return isset($subarray[$searchKey]) && $subarray[$searchKey] === $searchValue;
});
if (!empty($result)) {
    // Key-value pair found
    // Do something with $result or the matching element(s)
} else {
    // Key-value pair not found
    // Handle the case when the pair is not found
}

Dalam contoh ini, array_filter() digunakan untuk menapis $array berdasarkan fungsi panggil balik. Fungsi panggil balik menyemak sama ada setiap subarray mempunyai kunci yang diingini dan jika nilai sepadannya sepadan dengan nilai carian. Jika syarat dipenuhi, subarray disertakan dalam hasil yang ditapis.

Selepas menapis, anda boleh menyemak sama ada tatasusunan hasil $ tidak kosong untuk menentukan sama ada pasangan nilai kunci ditemui. Jika ia tidak kosong, anda boleh melakukan operasi dengan $hasil atau elemen padanan. Jika ia kosong, anda boleh mengendalikan kes apabila pasangan tidak ditemui mengikut keperluan anda.

Menggunakan array_search() dengan array_column()

Berikut ialah contoh menggunakan array_search() dengan array_column() untuk mencari pasangan nilai kunci dalam tatasusunan berbilang dimensi dalam PHP:

<?php
searchKey = 'key';
$searchValue = 'value';
$key = array_search($searchValue, array_column($array, $searchKey));
if ($key !== false) {
    // Key-value pair found
    // Do something with $array[$key] or the matching element
} else {
    // Key-value pair not found
    // Handle the case when the pair is not found
}
 
?>

Dalam contoh ini, array_column() digunakan untuk mengekstrak satu lajur nilai berdasarkan kekunci carian daripada tatasusunan berbilang dimensi $array. Tatasusunan yang terhasil mengandungi nilai kunci yang ditentukan daripada setiap subarray.

Kemudian, array_search() digunakan untuk mencari kedudukan nilai yang dikehendaki dalam lajur yang diekstrak. Jika pasangan nilai kunci ditemui, array_search() mengembalikan kunci/indeks yang sepadan bagi elemen padanan. Jika pasangan tidak ditemui, array_search() mengembalikan palsu.

Anda boleh menyemak sama ada kunci $yang dikembalikan tidak sama dengan palsu untuk menentukan sama ada pasangan nilai kunci ditemui. Jika ia tidak palsu, anda boleh melakukan operasi dengan $array[$key] atau elemen padanan. Jika ia palsu, anda boleh mengendalikan kes tersebut apabila pasangan tidak ditemui mengikut keperluan anda.

Kesimpulan

Setiap pendekatan mempunyai kelebihannya dan mungkin lebih sesuai bergantung pada kes penggunaan khusus anda. Anda boleh memilih yang sesuai dengan keperluan anda dan struktur tatasusunan berbilang dimensi anda.

Atas ialah kandungan terperinci Cara Mencari mengikut key=value dalam Array Multidimensi dalam 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