使用intval选择更多选项($ row)

时间:2015-10-29 17:28:48

标签: php logical-operators

我正在尝试使用此功能处理3个或更多结果中的1个(例如"是,否,为什么不,可能"但我无法找到解决方案

$row['Funcionario'] = ( intval( $row['Funcionario']) == 1) ? "Yes" : "No"; 

上面的代码只给了我两种可能性:
是($row['Funcionario'] == 1)或否($row['Funcionario'] != 1
如果Why not$row['Funcionario'] == 2 Maybe,我该如何显示$row['Funcionario'] == 3

2 个答案:

答案 0 :(得分:2)

简单方法:

定义一个数组......

$answers = ["No", "Yes", "Why not", "Maybe"];

从中得到......

$row['Functionario'] = $answers[$row['Functionario']];

如果数组是一次性使用(即未被其他可能具有这些值的字段使用),则可以将其缩短为:

$row['Functionario'] = ["No", "Yes", "Why not", "Maybe"][$row['Functionario']];

可读性可能会有所不同。考虑添加空格和/或注释来解释发生了什么。

答案 1 :(得分:0)

您应该查看switch语句

switch ($row['Funcionario']) {
    case 1:
        echo 'This code will be executed if $row[\'Funcionario\'] is 1';
        break;
    case 2:
        echo 'This code will be executed if $row[\'Funcionario\'] is 2';
        break;
    case "Yes":
        echo 'This code will be executed if $row[\'Funcionario\'] is Yes';
        break;
    default:
        echo 'This code will be executed if $row[\'Funcionario\'] is not any of the values before
}

您可以将case之后的值替换为您想要的任何内容,并使用以下代码,直到break$row['Funcionario']时执行下一个 $args = array( 'orderby' => 'name', 'order' => 'ASC', 'posts_per_page' =>'-1' );