循环遍历数组中的每个值,然后对这些值使用switch语句。
P粉513316221
P粉513316221 2023-07-30 12:21:44
0
1
700
<p>我是PHP的新手,我想知道是否有人可以帮助我。</p><p>我有一个数组,数组中的值由另一个函数确定,但是数组的值始终是"warning"、"critical"或"ok",数组的长度也可以是任意的。例如:</p><p><br /></p> <p><code>$hold = array ( 'warning','warning','critical','ok');</code></p> <p>如何使用switch函数和for循环函数,以便循环遍历数组中的每个值并打印出相应的消息(无论该消息在数组中出现多少次,例如警告在数组中出现两次,那么警告应该打印两次)。</p><p>我尝试了下面的代码,但它总是打印出未知。</p><p><br /></p> <pre class="brush:php;toolbar:false;">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'; };</pre> <p>谢谢</p>
P粉513316221
P粉513316221

全部回复(1)
P粉295616170

编写一个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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板