使用数组键和数组值切换语句?

Des*_*iny 1 php arrays switch-statement

我想编写一个脚本,显示每个数组中的键使用switch statement,这里是我简单的代码:

<?php
$char = array('A'=>'01', 'B'=>'02', 'C'=>'03', 'D'=>null);

foreach($char as $letter => $number) 
{
    switch($char[$letter]) 
    {
        case 'A':
            echo $number;
            break;
        case 'B':
            echo $number;
            break;
        case 'C':
            echo $number;
            break;
        case 'D':
            echo $number;
            break;
        default:
            echo 'LETTER '.$letter.' is empty';
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

问题:

它不会打印已存储在数组中的值.

预期产量:

如果A存在则返回01.......等等.但是如果数组键包含空值,则返回'LETTER D为空'

有什么帮助吗?谢谢

Kri*_*h R 6

switch($letter) 而不是switch($char[$letter]).PHP foreach循环将您的数组拆分为$ letter => A$ number => 01

    $char = array('A'=>'01', 'B'=>'02', 'C'=>'03', 'D'=>null);

    foreach($char as $letter => $number) 
    {
        switch($letter) 
        {
            case 'A':
                echo $number;
                break;
            case 'B':
                echo $number;
                break;
            case 'C':
                echo $number;
                break;
            case 'D':
                if($number=='' || is_null($number)){ 
                  echo 'LETTER '.$letter.' is empty';
                }else{
                  echo $number;
                }
                break;
            default:
                echo 'LETTER '.$letter.' is empty';
        }
    }
Run Code Online (Sandbox Code Playgroud)

要么

    $char = array('A'=>'01', 'B'=>'02', 'C'=>'03', 'D'=>null);

    foreach($char as $letter => $number) 
    {          
        CheckNumber($letter, $number);                
    }


    function CheckNumber($letter, $number){         
        if($number=='' || is_null($number)){    // add whatever condition you want to check     
            echo 'LETTER '.$letter.' is empty';             
        }else{              
            echo $number;
        }
    }
Run Code Online (Sandbox Code Playgroud)