suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Durchlaufen Sie jeden Wert im Array und verwenden Sie dann eine Switch-Anweisung für diese Werte.

<p>Ich bin PHP-Neuling und frage mich, ob mir jemand helfen könnte. </p><p>Ich habe ein Array, der Wert im Array wird durch eine andere Funktion bestimmt, aber der Wert des Arrays ist immer „Warnung“, „kritisch“ oder „ok“, die Länge des Arrays kann auch beliebig sein. Zum Beispiel: </p><p><br /></p> <p><code>$hold = array ( 'warning','warning','critical','ok');</code></p> <p>So verwenden Sie die Switch-Funktion und die for-Schleifenfunktion, damit sie jeden Wert im Array durchläuft und die entsprechende Meldung ausgibt (unabhängig davon, wie oft die Meldung im Array erscheint, wird beispielsweise eine Warnung angezeigt). zweimal im Array, dann sollte die Warnung zweimal gedruckt werden). </p><p>Ich habe den folgenden Code ausprobiert, aber er gibt immer unbekannt aus. </p><p><br /></p> <pre class="brush:php;toolbar:false;">switch($hold){ Fall 'ok': echo „Alles ist in Ordnung“; brechen; Fall 'Warnung': echo „es ist eine Warnung“; brechen; Fall 'kritisch': echo „es ist kritisch“; brechen; Standard: echo 'unbekannt'; };</pre> <p>Vielen Dank</p>
P粉513316221P粉513316221529 Tage vor724

Antworte allen(1)Ich werde antworten

  • P粉295616170

    P粉2956161702023-07-31 11:28:23

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

    Antwort
    0
  • StornierenAntwort