【发布时间】:2019-03-24 15:38:51
【问题描述】:
我想使用内部有 If 语句的 PHP foreach 循环来显示数据。 If 语句应该将所有值都接受为真,但它却将某些值接受为 TRUE。
打印$phone_array:
[0] => Array
(
[phone_number] => (011) 5290-0314
[type] => phone
)
[1] => Array
(
[phone_number] => (011) 4711-6948
[type] => phone
)
[2] => Array
(
[phone_number] => (011) 4794-9490
[type] => phone
)
foreach 循环中的 if 语句:
foreach($phone_array as $value){
if(isset($value['type']) && $value['type'] == 'phone'){
echo "Its a phone<br>";
}
elseif(isset($value['type']) && $value['type'] == 'mobile'){
echo "Its a mobile phone<br>";
}
}
此代码在应该显示 3 次时只显示一次“Its a phone”。
【问题讨论】:
-
前两个数组条目似乎在
=>和phone之间有一个额外的空格...你可以试试trim($value['type']) == 'phone'吗? -
您的 foreach 循环运行良好。问题出在数组本身。检查以确保没有多余的空格
-
它显示“它是一部手机”3 次。见3v4l.org/9H4NS
-
@NiettheDarkAbsol 非常感谢!我没注意到。这就是问题所在。
-
正如@NiettheDarkAbsol 所说 - 这是一个错字。您可以将您的代码修改为
&& trim($value['type']) == 'phone'或修复您的数据
标签: php loops if-statement foreach