"Joh"/> "Joh">

Rumah >pembangunan bahagian belakang >masalah PHP >Tatasusunan dua dimensi PHP memadam tatasusunan satu dimensi yang ditentukan

Tatasusunan dua dimensi PHP memadam tatasusunan satu dimensi yang ditentukan

王林
王林asal
2023-05-06 13:27:07661semak imbas

Dalam pengaturcaraan PHP, tatasusunan dua dimensi ialah jenis data yang sangat biasa. Tatasusunan dua dimensi juga digunakan untuk menyimpan dan memproses data yang kompleks. Dalam sesetengah kes, kita perlu mengalih keluar tatasusunan satu dimensi tertentu daripada tatasusunan dua dimensi. Proses ini selalunya kelihatan lebih sukar dalam PHP. Dalam artikel ini, kita akan belajar cara memadam tatasusunan satu dimensi yang ditentukan daripada tatasusunan dua dimensi.

Mari kita lihat contoh tatasusunan dua dimensi yang mudah, yang mengandungi tiga tatasusunan satu dimensi:

$students = array(
    array("name" => "John", "age" => 20, "skill" => "PHP"),
    array("name" => "Mary", "age" => 22, "skill" => "Java"),
    array("name" => "Peter", "age" => 21, "skill" => "Python")
);

Andaikan kita ingin memadam tatasusunan satu dimensi bernama Mary, bagaimana kita harus mencapai ia?

Kaedah 1: Gunakan gelung foreach untuk melaksanakan

Salah satu penyelesaian yang boleh dilaksanakan ialah menggunakan gelung foreach untuk mendapatkan setiap tatasusunan satu dimensi, dan gunakan fungsi unset() dalam setiap lelaran untuk memadam syarat tatasusunan satu dimensi.

foreach($students as $key => $value) {
  if($value['name'] == 'Mary') {
    unset($students[$key]);
  }
}

Dalam contoh ini, $key ialah kunci lelaran semasa dan $value ialah nilai lelaran semasa. Dalam setiap lelaran, kami membandingkan kunci nama untuk menentukan sama ada syarat itu dipenuhi. Jika tatasusunan sepadan ditemui, kami memadam tatasusunan menggunakan fungsi unset().

Kaedah 2: Gunakan array_filter() untuk melaksanakan

Cara lain untuk memadam tatasusunan satu dimensi yang ditentukan ialah menggunakan fungsi array_filter(). Fungsi ini menerima tatasusunan sebagai input dan mengembalikan tatasusunan baharu dengan elemen yang memenuhi kriteria yang dialih keluar.

$students = array_filter($students, function($arr) {
  return $arr['name'] !== 'Mary';
});

Dalam contoh ini, kami menghantar fungsi tanpa nama kepada fungsi array_filter(). Fungsi ini akan berulang ke atas tatasusunan $students dan lulus setiap tatasusunan satu dimensi sebagai tatasusunan input kepada fungsi tersebut. Dalam fungsi tanpa nama, kami menggunakan operator !== untuk membandingkan sama ada kunci nama tatasusunan semasa adalah sama dengan Mary. Jika ia tidak sama, fungsi array_filter() mengembalikan tatasusunan baharu dan elemen yang memenuhi syarat dikekalkan.

Kaedah 3: Gunakan array_search() untuk melaksanakan

Akhir sekali, kita boleh menggunakan fungsi array_search() untuk mencari tatasusunan satu dimensi untuk dipadamkan, dan kemudian gunakan fungsi unset() untuk memadamnya.

$search_key = array_search('Mary', array_column($students, 'name'));
unset($students[$search_key]);

Perhatikan bahawa kami menggunakan fungsi array_column() untuk mengembalikan nilai semua kekunci nama daripada tatasusunan $students sebagai tatasusunan baharu. Kita boleh menggunakan fungsi array_search() untuk mencari nilai yang sepadan dalam tatasusunan baharu ini dan mengembalikan kunci nilai tersebut. Akhir sekali, kami menggunakan fungsi unset() untuk memadamkan elemen yang sepadan dengan kunci.

Ringkasan:

Di atas ialah tiga kaedah biasa untuk memadam tatasusunan satu dimensi tertentu daripada tatasusunan dua dimensi PHP. Adalah penting untuk ambil perhatian bahawa setiap kaedah mempunyai kebaikan dan keburukan. Apabila memilih kaedah pelaksanaan, kita harus memilih cara yang paling sesuai berdasarkan keperluan kod kita.

Dalam aplikasi sebenar, kaedah pelaksanaan dipilih berdasarkan situasi sebenar Kadangkala gelung bersarang juga boleh menyelesaikan masalah, tetapi jika jumlah data terlalu besar, ia mungkin tidak cekap, jadi keseimbangan yang baik antara. prestasi dan kebolehbacaan Kod.

Atas ialah kandungan terperinci Tatasusunan dua dimensi PHP memadam tatasusunan satu dimensi yang ditentukan. 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