我有一个关联的数组数组。数组的关联数组并不总是包含相同的子数组。如果存在,我想遍历一个特定的子数组。是否有更优雅的方法来执行以下代码:
if ( array_key_exists( 'fizzy_drinks', $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 (isset($drinks['fizzy_drinks'])) {
foreach ( $drinks['fizzy_drinks'] as $fizzy_drink ) {
// do something with $fizzy_drink
}
}
如果省略 isset,如果 fizzy_drinks 未设置,则会收到通知,如果 $drinks 不是数组,则会收到警告。
并不真地。我认为您的解决方案非常优雅且可读。我会做:
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
真的是一个数组。
您可能更喜欢使用is_array:
if(is_array($drinks['fizzy_drinks'])) {
foreach ($drinks['fizzy_drinks'] as $fizzy_drink) {
// do something with $fizzy_drink
}
}