我看了很多,但也许我没有使用正确的术语。这似乎是检查3个字符串数组的非常低效的方法。
我正在查看数组中的每个项目并单独检查值。是否有更短的方法来实现相同的结果?
$j = get_field('loan_types');
$business = '<i class="fa fa-suitcase"></i>';
$property = '<i class="fa fa-home"></i>';
$personal = '<i class="fa fa-user"></i>';
switch ($j[0]) {
case 'Business':
echo $business;
break;
case 'Personal':
echo $personal;
break;
case 'Property':
echo $property;
break;
}
switch ($j[1]) {
case 'Business':
echo $business;
break;
case 'Personal':
echo $personal;
break;
case 'Property':
echo $property;
break;
}
switch ($j[2]) {
case 'Business':
echo $business;
break;
case 'Personal':
echo $personal;
break;
case 'Property':
echo $property;
break;
}
答案 0 :(得分:4)
由于$j
是一个数组,你可以使用foreach循环,如下所示:
$j = get_field('loan_types');
$business = '<i class="fa fa-suitcase"></i>';
$property = '<i class="fa fa-home"></i>';
$personal = '<i class="fa fa-user"></i>';
foreach ($j as $loan_field) {
switch ($loan_field) {
case 'Business':
echo $business;
break;
case 'Personal':
echo $personal;
break;
case 'Property':
echo $property;
break;
}
}
编辑:如果您真的喜欢冒险,请参阅CBroe'很棒的答案!
答案 1 :(得分:3)
你如何取消整个switch
声明开头......?
如果您将要输出的值放在关联数组中,并使用贷款类型作为键,那么您可以将其缩短为
$j = get_field('loan_types');
$icons = array(
'Business' => '<i class="fa fa-suitcase"></i>',
'Property' => '<i class="fa fa-home"></i>',
'Personal' => '<i class="fa fa-user"></i>',
);
foreach($j as $loan_field) {
if(isset($icons[$loan_field])) {
echo $icons[$loan_field];
}
}