我是PHP的新手,我想知道是否有人可以帮助我。
我有一个数组,数组中的值由另一个函数确定,但是数组的值始终是"warning"、"critical"或"ok",数组的长度也可以是任意的。例如:
$hold = array ( 'warning','warning','critical','ok');
如何使用switch函数和for循环函数,以便循环遍历数组中的每个值并打印出相应的消息(无论该消息在数组中出现多少次,例如警告在数组中出现两次,那么警告应该打印两次)。
我尝试了下面的代码,但它总是打印出未知。
switch($hold){
case 'ok':
echo 'everyhting is ok';
break;
case 'warning':
echo 'it is a warning';
break;
case 'critical':
echo 'its critical';
break;
default:
echo 'unknown';
};
谢谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
编写一个switch语句需要相当多的代码。为什么不使用另一个数组来将消息与$hold中的状态关联起来呢?就像这样:
$hold = ['warning', 'warning', 'critical', 'ok', 'this is bad']; $messages = ['warning' => 'it is a warning', 'critical' => 'its critical', 'ok' => 'everyhting is ok']; foreach ($hold as $status) { echo ($messages[$status] ?? 'unknown') . PHP_EOL; }正如您所见,我使用了一个foreach()循环来遍历$hold。
我使用了一个关联数组和特殊的Null合并运算符。如果您不喜欢这种方式,您可以使用您的switch语句。
演示请参见:https://3v4l.org/jNkfF