Dapatkan array multidimensi kunci php

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

NameStockSoldVolvo2218BMW1513Saab52Land Rover1715

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]. "
";
?>

Cobalah sendiri "

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

  1. $id = "111";
    foreach ($users as $k => $v) {
        if ($v["uid"] === $id) {
            print $users[$k];
        }
    }
    
    7 yang ingin Anda cari
  2. $id = "111";
    foreach ($users as $k => $v) {
        if ($v["uid"] === $id) {
            print $users[$k];
        }
    }
    
    8 yang ingin Anda miliki kuncinya
  3. $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

Bagaimana cara mendapatkan semua kunci dari array multidimensi di PHP?

Mengambil Nilai. Kita dapat mengambil nilai array multidimensi menggunakan metode berikut. .
Menggunakan kunci. Kita dapat menggunakan kunci dari array asosiatif untuk secara langsung mengambil nilai data. .
Menggunakan foreach loop. Kita dapat menggunakan foreach loop untuk mengambil nilai dari setiap kunci yang terkait di dalam array asosiatif multidimensi

Bagaimana cara mengekstrak array multidimensi di PHP?

$newArray = array_column($originalArray,'0'); Seperti yang dikatakan dalam Manual PHP, dengan fungsi ini Anda dapat mengekstrak, dari array array, satu-satunya informasi yang Anda . Ini biasanya digunakan dengan array Asosiatif, tetapi Anda dapat menggunakan angka sebagai parameter dan itu juga akan berfungsi.

Bagaimana cara mendapatkan kunci dari array di PHP?

Fungsi array_keys() mengembalikan larik yang berisi kunci.

Bagaimana cara mendapatkan array spesifik dari array multidimensi di PHP?

Dalam PHP, kita bisa menggunakan metode array_column() untuk membuat kolom dari array multidimensi . Ini akan mengembalikan satu kolom dari array yang diidentifikasi oleh kunci kolom. Kami juga dapat menentukan kunci mana yang akan digunakan sebagai indeks untuk array baru yang akan dikembalikan.