我想使用内部有If陈述的PHP foreach循环显示数据。如果If语句应接受所有值为true,则接受某些值为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”。
答案 0 :(得分:1)
似乎数组值上有空格,因此请尝试在比较之前删除空格。
foreach($phone_array as $value){
if(isset($value['type']) && trim($value['type']) == 'phone'){
echo "Its a phone<br>";
}
elseif(isset($value['type']) && trim($value['type']) == 'mobile'){
echo "Its a mobile phone<br>";
}
}
这可能会对您有所帮助。
答案 1 :(得分:0)
我测试了您的代码,并且在我的情况下工作正常,就像Festus Yuma发布的那样,它可能是您的数组声明。我分享了我的代码,您会发现一个额外的选择条件:
$phone_array = 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($phone_array as $value) {
# 1 Option
if($value['type']) {
if($value['type'] == 'phone') {
echo "Its a phone<br>";
} else if($value['type'] == 'mobile') {
echo "Its a mobile phone<br>";
}
}
# 2 Option
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>";
}
}