[英]PHP: Elegant Way to foreach Over a Subarray of an Associative Array
我有一個關聯的數組數組。 關聯數組數組並不總是包含相同的子數組。 如果它存在,我想循環一個特定的子數組。 是否有更優雅的方式來執行以下代碼:
if ( array_key_exists( 'fizzy_drinks', $drinks ) ) {
foreach ( $drinks['fizzy_drinks'] as $fizzy_drink ) {
// do something with $fizzy_drink
}
}
不是真的,這是優雅的:
if (isset($drinks['fizzy_drinks'])) {
foreach ( $drinks['fizzy_drinks'] as $fizzy_drink ) {
// do something with $fizzy_drink
}
}
如果省略isset,如果未設置fizzy_drinks,則會收到通知,如果$ drinks不是數組,則會收到警告。
您可能更喜歡使用is_array :
if(is_array($drinks['fizzy_drinks'])) {
foreach ($drinks['fizzy_drinks'] as $fizzy_drink) {
// do something with $fizzy_drink
}
}
您可以使用:
if (! empty($drinks['fizzy_drinks']) && is_array($drinks['fizzy_drinks'])) {
foreach ($drinks['fizzy_drinks'] as $fizzy_drink) {
// do something with $fizzy_drink
}
}
沒有警告,沒有通知
並不是的。 我認為您的解決方案非常優雅,可讀。 我會做:
if (array_key_exists('fizzy_drinks', $drinks) && is_array($drinks['fizzy_drinks'])) {
foreach ($drinks['fizzy_drinks'] as $fizzy_drink ) {
// do something with $fizzy_drink
}
}
總是很高興檢查你嘗試使用foreach
的值是否真的是一個數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.