cari

Rumah  >  Soal Jawab  >  teks badan

Gelung setiap nilai dalam tatasusunan dan kemudian gunakan pernyataan suis pada nilai tersebut.

<p>Saya baru menggunakan PHP dan saya tertanya-tanya sama ada sesiapa boleh membantu saya. </p><p>Saya mempunyai tatasusunan, nilai dalam tatasusunan ditentukan oleh fungsi lain, tetapi nilai tatasusunan sentiasa "amaran", "kritikal" atau "ok", panjang tatasusunan boleh juga sewenang-wenangnya. Contohnya: </p><p><br /></p> <p><kod>$hold = tatasusunan ( 'amaran','amaran','kritikal','ok');</code></p> <p>Cara menggunakan fungsi suis dan fungsi gelung for supaya ia menggelung melalui setiap nilai dalam tatasusunan dan mencetak mesej yang sepadan (tidak kira berapa kali mesej itu muncul dalam tatasusunan, contohnya, amaran muncul dua kali dalam tatasusunan, maka amaran itu hendaklah dicetak dua kali). </p><p>Saya mencuba kod di bawah tetapi ia sentiasa mencetak tidak diketahui. </p><p><br /></p> <pre class="brush:php;toolbar:false;">switch($hold){ kes 'ok': echo 'semuanya ok'; pecah; 'amaran' kes: echo 'ia adalah amaran'; pecah; kes 'kritikal': bergema 'kritikal'; pecah; lalai: echo 'tidak diketahui'; };</pre> <p>Terima kasih</p>
P粉513316221P粉513316221572 hari yang lalu746

membalas semua(1)saya akan balas

  • P粉295616170

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

    Menulis pernyataan suis memerlukan sedikit kod. Mengapa tidak menggunakan tatasusunan lain untuk mengaitkan mesej dengan keadaan dalam $hold? Seperti ini:

    $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;
    }

    Seperti yang anda boleh lihat, saya menggunakan gelung foreach() untuk mengulangi $hold.

    Saya menggunakan tatasusunan bersekutu dan pengendali gabungan Null khas. Jika anda tidak menyukai cara ini, anda boleh menggunakan pernyataan suis anda.

    Sila lihat demo: https://3v4l.org/jNkfF

    balas
    0
  • Batalbalas