Dalam PHP, anda boleh menggunakan struktur gelung untuk melintasi tatasusunan. Walau bagaimanapun, jika kita mempunyai tatasusunan yang tidak teratur, bagaimanakah kita harus melintasinya? Mari kita bincangkan cara merentasi tatasusunan yang tidak teratur.
Apakah tatasusunan tidak sekata?
Tatasusunan tidak sekata bermakna kunci setiap elemen dalam tatasusunan bukanlah nombor atau nilai berterusan, tetapi rentetan atau nombor yang berbeza. Contohnya:
$irregular_array = array( 'apple' => array('color' => 'red', 'weight' => '100g'), 'banana' => array('color' => 'yellow', 'weight' => '150g', 'brand' => 'Chiquita'), 'orange' => array('color' => 'orange', 'taste' => 'sweet'), 'grape' => array('color' => 'purple', 'weight' => '10g', 'price' => '2.99'), 'watermelon' => array('weight' => '5kg') );
Dalam tatasusunan ini, nama kunci setiap subtatasusunan adalah berbeza, malah sesetengahnya tidak mempunyai pasangan nilai kunci tertentu. Ini ialah tatasusunan yang tidak teratur.
Bagaimana untuk melintasi tatasusunan yang tidak teratur?
Apabila kita perlu melintasi tatasusunan yang tidak teratur, kita boleh menggunakan gelung foreach serta beberapa pertimbangan untuk menyelesaikan masalah. Lihat kod berikut:
foreach ($irregular_array as $key => $value) { echo 'Fruit: ' . $key . '<br>'; foreach ($value as $k => $v) { echo $k . ': ' . $v . '<br>'; } echo '<br>'; }
Kod ini mula-mula menggunakan gelung foreach untuk melintasi keseluruhan tatasusunan, dan menetapkan nama kunci dan nilai kunci setiap elemen kepada pembolehubah $key dan $value. Seterusnya, gunakan gelung foreach untuk merentasi $value dan tetapkan setiap nama kunci dan nilai kunci dalam subarray kepada pembolehubah $k dan $v masing-masing. Kemudian keluarkan hasilnya.
Kesan pelaksanaan kod di atas adalah seperti berikut:
Fruit: apple color: red weight: 100g Fruit: banana color: yellow weight: 150g brand: Chiquita Fruit: orange color: orange taste: sweet Fruit: grape color: purple weight: 10g price: 2.99 Fruit: watermelon weight: 5kg
Kami juga boleh menambah beberapa pernyataan penghakiman untuk mengendalikan kemungkinan ketidakkonsistenan dalam tatasusunan yang tidak teratur. Contohnya:
foreach ($irregular_array as $key => $value) { echo 'Fruit: ' . $key . '<br>'; foreach ($value as $k => $v) { if ($k == 'color') { echo 'Color: ' . $v . '<br>'; } if ($k == 'weight') { echo 'Weight: ' . $v . '<br>'; } if ($k == 'brand') { echo 'Brand: ' . $v . '<br>'; } if ($k == 'taste') { echo 'Taste: ' . $v . '<br>'; } if ($k == 'price') { echo 'Price: ' . $v . '<br>'; } } echo '<br>'; }
Dalam kod di atas, kami telah menambah beberapa pernyataan if untuk menyemak sama ada nama kunci tertentu wujud dalam tatasusunan. Jika ia wujud, nilai kunci yang sepadan dengan nama kunci adalah output. Hasil pelaksanaan kod di atas adalah sama seperti di atas.
Ringkasan
Di atas adalah kaedah merentasi tatasusunan yang tidak teratur Apabila menggunakannya, kita boleh menggunakan kaedah yang berbeza mengikut situasi tertentu. Jika kita berurusan dengan tatasusunan tidak teratur yang diketahui, kita boleh menulis kod traversal secara manual untuk memenuhi keperluan kita. Jika anda berurusan dengan beberapa tatasusunan tidak teratur yang dijana secara dinamik, anda boleh memilih kaedah yang berbeza mengikut keperluan anda. Mana-mana kaedah boleh membantu kami menangani tatasusunan yang tidak teratur dan meningkatkan kecekapan kerja kami.
Atas ialah kandungan terperinci Bagaimana untuk melintasi tatasusunan tidak teratur dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!