Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

switch statement using array keys and array values?

I'm trying to write a script that shows every value in array keys using switch statement here's my simple code:

<?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';
    }
}
?>

PROBLEM:

It won't print the values that has been stored in the array.

EXPECTED OUTPUT:

if A exist return 01 . . . . . . . and so on. But if the array key contains an empty value it returns 'LETTER D is empty'

any help please? thank you

like image 320
Destiny Avatar asked Nov 27 '13 05:11

Destiny


1 Answers

Use switch($letter) instead of switch($char[$letter]). PHP foreach loop splitted your array as $letter=>A and $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';
        }
    }

OR

    $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;
        }
    }
like image 172
Krish R Avatar answered Nov 07 '22 00:11

Krish R