我正在使用此方法来检查检查了哪个term_id:
if ($type) {
if ($type[0]->term_id == 24) echo '<div class="one"></div>';
if ($type[1]->term_id == 23) echo '<div class="two"></div>';
if ($type[2]->term_id == 22) echo '<div class="three"></div>';
}
但问题是它只有当所有三个都在数组中时才有效。
如果我在我的数组中只有两个,term_id = 24和term_id = 22,那么它只找到24并且找不到22因为现在22将是$ type [1]而不是类型[2]。
所以,我需要以某种方式放一些通配符“*”来包含所有可能性,例如if ($type[*]->term_id == 24) echo '<div class="one"></div>';
如何在PHP中使用最简单的方法?
答案 0 :(得分:4)
if ($type) {
foreach($type as $element) {
switch($element->term_id) {
case 24: echo '<div class="one"></div>';
break;
case 23: echo '<div class="two"></div>';
break;
case 22: echo '<div class="three"></div>';
break;
}
}
}
答案 1 :(得分:0)
if ( isset($type) && is_array($type) ) {
foreach($type as $element) {
switch($element->term_id) {
case 24:
echo '<div class="one"></div>';
break;
case 23:
echo '<div class="two"></div>';
break;
case 22:
echo '<div class="three"></div>';
break;
}
}
}
答案 2 :(得分:0)
为您的选项定义地图并浏览$type
- 数组:
$map = array(22=>'three',23=>'two',24=>'one');
if ($type){
array_walk(
$type,
function($item,$key,$map){
if(in_array($item->term_id, array_keys($map))){
echo '<div class="'.$map[$item->term_id].'"></div>';
}
},
$map
);
}
答案 3 :(得分:0)
另一种方法是使用此功能
function in_array_field($needle, $needle_field, $haystack, $strict = false) {
if ($strict) {
foreach ($haystack as $item)
if (isset($item->$needle_field) && $item->$needle_field === $needle)
return true;
}
else {
foreach ($haystack as $item)
if (isset($item->$needle_field) && $item->$needle_field == $needle)
return true;
}
return false;
}
您可以将此功能用作:
if ($type) {
if (in_array_field('24', 'term_id', $type))
echo '<div class="one"></div>';
if (in_array_field('23', 'term_id', $type))
echo '<div class="two"></div>';
if (in_array_field('22', 'term_id', $type))
echo '<div class="three"></div>';
}