循環遍歷數組中的每個值,然後對這些值使用switch語句。
P粉513316221
P粉513316221 2023-07-30 12:21:44
0
1
584
<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

#
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!