Pada bagian ini, kita akan mempelajari pencarian array multidimensi dengan menggunakan nilai. Kami akan menggunakan PHP untuk melakukan ini. Jika kita tidak mengetahui tentang array multidimensi di PHP, contoh ini akan sangat berguna bagi kita. Dalam contoh kami di bawah ini, kami akan menggunakan nilai untuk mencari kunci dari array multidimensi. Jika kita ingin mendapatkan nilai dari array multidimensi, kita dapat melakukannya dengan mudah dengan mencari nilai kunci di dalam array
Dalam contoh kita, kita akan menggunakan larik sederhana untuk menjelaskan contoh ini. Kita akan menggunakan dua array bernama $students dan $studentsAddress. Dalam array $students kami, kami akan menggunakan foreach loop. Dalam larik $studentsAddress kami, kami juga ingin menampilkan alamatnya. Tapi kami menghadapi masalah karena contoh kami memiliki kunci user_id, yang berisi beberapa record dan id array pertama. Untuk mengatasi ini, kita akan menggunakan array_column() dan fungsi dari array_column
Kode sederhana untuk mencari nilai dalam array multidimensi dijelaskan sebagai berikut
Contoh lengkap untuk mencari nilai dalam array multidimensi dijelaskan sebagai berikut
Contoh
Sekarang kode kita di atas sudah siap, dan kita bisa menjalankannya. Ketika kita menjalankan ini, output berikut akan dihasilkan
Namun, terkadang Anda ingin menyimpan nilai dengan lebih dari satu kunci. Untuk ini, kami memiliki array multidimensi
PHP - Array Multidimensi
Array multidimensi adalah array yang berisi satu atau lebih array
PHP mendukung array multidimensi dengan kedalaman dua, tiga, empat, lima, atau lebih. Namun, array dengan kedalaman lebih dari tiga level sulit dikelola bagi kebanyakan orang
Dimensi array menunjukkan jumlah indeks yang Anda perlukan untuk memilih elemen
- Untuk array dua dimensi, Anda memerlukan dua indeks untuk memilih elemen
- Untuk array tiga dimensi, Anda memerlukan tiga indeks untuk memilih elemen
PHP - Array Dua Dimensi
Array dua dimensi adalah array dari array (array tiga dimensi adalah array dari array dari array)
Pertama, perhatikan tabel berikut
Kita bisa menyimpan data dari tabel di atas dalam array dua dimensi, seperti ini
$mobil = larik(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Landrover",17,15)
);
Sekarang array $cars dua dimensi berisi empat array, dan memiliki dua indeks. baris dan kolom
Untuk mendapatkan akses ke elemen array $cars kita harus menunjuk ke dua indeks (baris dan kolom)
Contoh
gema $mobil[0][0]. ". Persediaan. ". $mobil[0][1]. ", terjual. ". $mobil[0][2]. "
";
gema $mobil[1][0]. ". Persediaan. ". $mobil[1][1]. ", terjual. ". $mobil[1][2]. "
";
gema $mobil[2][0]. ". Persediaan. ". $mobil[2][1]. ", terjual. ". $mobil[2][2]. "
";
gema $mobil[3][0]. ". Persediaan. ". $mobil[3][1]. ", terjual. ". $mobil[3][2]. "
";
?>
Kita juga bisa meletakkan for loop di dalam for loop lain untuk mendapatkan elemen dari array $cars (kita masih harus menunjuk ke dua indeks)
Untuk menangani pencarian array multidimensi, Anda dapat menggunakan pernyataan foreach atau fungsi $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 0
Array multidimensi PHP dapat dicari untuk melihat apakah ia memiliki nilai tertentu
Mari kita lihat contoh melakukan pencarian. Misalkan Anda memiliki array multidimensi dengan struktur berikut
$users = [ [ "uid" => "111", "name" => "Nathan", "age" => 29, ], [ "uid" => "254", "name" => "Jessie", "age" => 25, ], [ "uid" => "305", "name" => "Michael", "age" => 30, ], ]; _
Untuk mencari array berdasarkan nilainya, Anda dapat menggunakan pernyataan foreach
Anda perlu mengulang array dan melihat apakah salah satu array anak memiliki nilai tertentu
Misalnya, Anda ingin mendapatkan array dengan nilai $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 2 dari $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 3
$id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } }
Perhatikan bahwa operator pembanding pada kode di atas menggunakan triple equal $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 4
Ini berarti jenis nilai yang dibandingkan harus sama
Kode di atas akan menghasilkan output berikut
Array ( [uid] => 111 [name] => Nathan [age] => 29 ) _
Di PHP5. 5 ke atas, Anda juga dapat menggunakan fungsi $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } _0 dikombinasikan dengan fungsi $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 6 untuk menemukan larik yang cocok dengan kondisi
Lihat contoh di bawah ini
$name = "Michael"; $key = array_search($name, array_column($users, "name")); print_r($users[$key]); _
Kode di atas akan menghasilkan output berikut
Array ( [uid] => 305 [name] => Michael [age] => 30 )
Mari buat fungsi khusus dari kode penelusuran sehingga Anda dapat melakukan penelusuran yang lebih dinamis berdasarkan kunci dan nilai
Fungsi kustom ini menerima tiga parameter
- $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 7 yang ingin Anda cari
- $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 8 yang ingin Anda miliki kuncinya
- $id = "111"; foreach ($users as $k => $v) { if ($v["uid"] === $id) { print $users[$k]; } } 9 yang ingin Anda cari
Fungsi tersebut dapat ditulis sebagai berikut
function find_array($name, $value, $array) { $key = array_search($name, array_column($array, $value)); return $array[$key]; }
Untuk menangani kasus di mana nilai spesifik tidak ditemukan, Anda perlu menambahkan kondisi Array ( [uid] => 111 [name] => Nathan [age] => 29 ) 0 ke fungsi
Anda dapat mengembalikan Array ( [uid] => 111 [name] => Nathan [age] => 29 ) 1 atau Array ( [uid] => 111 [name] => Nathan [age] => 29 ) 2 ketika Array ( [uid] => 111 [name] => Nathan [age] => 29 ) 3 tidak ditemukan
function find_array($k, $v, $array) { $key = array_search($v, array_column($array, $k)); // 👇 key is found, return the array if ($key !== false) { return $array[$key]; } // 👇 key is not found, return false return false; }
Sekarang Anda dapat menggunakan fungsi Array ( [uid] => 111 [name] => Nathan [age] => 29 ) _4 kapan saja Anda perlu mencari array multidimensi
Berikut beberapa contohnya
// 👇 value exists $result = find_array("name", "Jessie", $users); if ($result) { print_r($result); } else { print "Array with that value is not found!"; } // 👇 value doesn't exists $result = find_array("uid", "1000", $users); if ($result) { print_r($result); } else { print "Array with that value is not found!"; }
Kode di atas akan menghasilkan output berikut
Array ( [uid] => 254 [name] => Jessie [age] => 25 ) Array with that value is not found!
Sekarang Anda telah mempelajari cara mencari array multidimensi di PHP
Saat Anda perlu menemukan array dengan nilai tertentu, Anda hanya perlu memanggil fungsi Array ( [uid] => 111 [name] => Nathan [age] => 29 ) 4 di atas