Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk memanggil subarray dalam tatasusunan dalam php

Bagaimana untuk memanggil subarray dalam tatasusunan dalam php

PHPz
Lepaskan: 2023-04-24 16:09:57
asal
533 orang telah melayarinya

Dalam PHP, kita selalunya perlu menggunakan tatasusunan untuk menyimpan dan mengurus data. Kadangkala, kita menemui tatasusunan yang mengandungi tatasusunan lain, iaitu tatasusunan berbilang dimensi yang dipanggil. Bagaimana untuk memanggil tatasusunan yang terkandung dalam tatasusunan lain dalam PHP? Artikel ini akan memperkenalkan perkara ini secara terperinci.

  1. Apakah tatasusunan berbilang dimensi

Tatasusunan berbilang dimensi merujuk kepada tatasusunan yang menyimpan tatasusunan lain atau berbilang dalam tatasusunan. Mereka boleh mempunyai berbilang peringkat bersarang atau jenis data yang berbeza. Contohnya:

$arr = array(
    '中国' => array('北京', '上海', '广州'),
    '美国' => array('纽约', '洛杉矶', '芝加哥'),
    '英国' => array('伦敦', '曼彻斯特', '爱丁堡')
);
Salin selepas log masuk

Dalam contoh ini, tatasusunan $arr mengandungi 3 pasangan nilai kunci, setiap pasangan nilai kunci ialah tatasusunan dan tatasusunan ini mengandungi beberapa nama bandar. Ini ialah tatasusunan dua dimensi kerana tahap bersarangnya ialah 2.

Sudah tentu, tatasusunan berbilang dimensi boleh menjadi lebih kompleks dan bilangan tahap bersarang boleh ditingkatkan seperti yang dikehendaki.

  1. Cara memanggil tatasusunan dalam tatasusunan berbilang dimensi

Dalam PHP, untuk mengakses elemen dalam tatasusunan berbilang dimensi, anda perlu menggunakan subskrip ( iaitu, nilai utama) akses. Sebagai contoh, kita boleh menggunakan kaedah berikut untuk mencetak bandar pertama di China dalam tatasusunan $arr:

echo $arr['中国'][0]; //输出北京
Salin selepas log masuk

Perhatikan di sini bahawa $arr['China'] mengembalikan tatasusunan, Daripada tatasusunan tertentu nama bandar, kita kemudian boleh menggunakan kurungan segi empat sama [] untuk mengakses elemen dalam tatasusunan ini. Begitu juga, jika anda ingin melawat bandar ketiga di Amerika Syarikat (iaitu Chicago), anda boleh menulis seperti ini:

echo $arr['美国'][2]; //输出芝加哥
Salin selepas log masuk

Mod akses tatasusunan berbilang dimensi adalah serupa dengan mod satu dimensi tatasusunan, kecuali anda perlu menambah kurungan segi empat sama tambahan untuk mengakses Set subarray terbenamnya. Jika anda perlu mengubah suai nilai elemen, anda juga boleh menggunakan kaedah ini untuk beroperasi.

  1. Membulat melalui tatasusunan berbilang dimensi

Merentasi tatasusunan berbilang dimensi ialah sesuatu yang sering kita perlu lakukan dalam pembangunan sebenar. Mudah sahaja untuk mencetak elemen tertentu dalam tatasusunan berbilang dimensi, tetapi apabila anda perlu mengulangi keseluruhan tatasusunan, anda perlu menggunakan traversal.

PHP menyediakan pelbagai cara untuk melintasi tatasusunan, termasuk untuk gelung, gelung foreach, gelung sementara, dsb. Di sini kita mengambil gelung foreach sebagai contoh untuk menunjukkan cara melintasi tatasusunan berbilang dimensi di atas.

Pertama, kita boleh menggunakan gelung berganda untuk melintasi tatasusunan dua dimensi. Kod berikut mencetak semua nama bandar dalam tatasusunan di atas $arr:

foreach ($arr as $country => $cities) {
    echo $country . '的城市有:';
    foreach ($cities as $city) {
        echo $city . ', ';
    }
    echo '<br>';
}
Salin selepas log masuk

Dalam contoh ini, gelung foreach luar digunakan untuk melintasi setiap elemen dalam tatasusunan utama $arr, iaitu semua negara dan susunan bandarnya. Kemudian, gelung foreach dalam digunakan untuk melintasi setiap tatasusunan bandar dan mengeluarkan nama bandar yang sepadan.

Untuk tatasusunan dimensi lebih tinggi, kita perlu menambah bilangan lapisan gelung yang sepadan. Proses ini perlu disesuaikan secara fleksibel mengikut keadaan sebenar.

  1. Operasi tatasusunan berbilang dimensi biasa

Setelah memahami cara mengakses dan melintasi tatasusunan berbilang dimensi, berikut ialah beberapa operasi biasa dalam aplikasi praktikal:

  • Tambah elemen pada tatasusunan berbilang dimensi: Gunakan subskrip untuk memasukkan tatasusunan terus ke kedudukan yang sepadan.
$arr['中国'][] = '深圳'; //添加深圳到中国城市数组的末尾
Salin selepas log masuk
  • Cari elemen dalam tatasusunan berbilang dimensi: gunakan traversal atau fungsi in_array() PHP sendiri.
//遍历方式
function findCity($arr, $cityName) {
    foreach ($arr as $country => $cities) {
        if (in_array($cityName, $cities)) {
            return $country;
        }
    }
    return false;
}

//in_array()方式
if (in_array('芝加哥', $arr['美国'])) {
    echo '美国有芝加哥这个城市。';
}
Salin selepas log masuk
  • Ubah suai elemen dalam tatasusunan berbilang dimensi: gunakan subskrip yang sepadan untuk mencari elemen yang sepadan, dan kemudian ubah suainya.
$arr['英国'][2] = '布莱顿'; //将英国城市数组中的第三个城市改成布莱顿
Salin selepas log masuk
  • Padamkan elemen dalam tatasusunan berbilang dimensi: Gunakan fungsi unset() untuk memadamkan elemen dengan subskrip yang ditentukan.
unset($arr['中国'][0]); //删除中国的第一个城市北京
Salin selepas log masuk
  1. Ringkasan

Artikel ini memperkenalkan konsep asas tatasusunan berbilang dimensi dalam PHP dan menunjukkan cara mengakses tatasusunan yang terkandung dalam tatasusunan lain , dan cara melintasi dan memanipulasi tatasusunan berbilang dimensi. Tatasusunan berbilang dimensi adalah sangat biasa dalam pembangunan sebenar, dan menguasai operasi asasnya adalah sangat penting untuk menulis program PHP yang cekap. Semoga artikel ini dapat memberi manfaat kepada pembaca.

Atas ialah kandungan terperinci Bagaimana untuk memanggil subarray dalam tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan