是否可以通过关联数组作为参数来切换Php中的大小写



我们需要一个控制结构,比如开关案例,接受关联数组作为参数或类似以下内容:

php代码:

$asso_array = array($key => $value);
switch ($asso_array) {
    case $asso_array[$key]:
        if ($asso_array[$value] == 'something') {
            echo'then do this';
        }
}

使用foreach,因为数组中的$key将有多个值:

foreach($array as $key => $value){
    switch($value){
        case 'something':
              echo 'then do this';
              break;
        default:
              echo 'else do something else';
    }
}

您可能需要使用一个函数:

<?php

function myFunction ($key,  $value){
    switch ($key) {
        case 'a':
            // do something with value
            break;
        default:
            break;
    }
}
$array = array();
foreach($array as $key => $value){
    myFunction($key, $value);
}

我认为下面的代码可以帮助你更好--

$alpha = array("a" => "apple", "b" => "banana", "c" => "cat", "d" => "dog");
function print_alpha($arr_alpha, $key, $input) {
    if($key == $input) {
        switch($key) {
            case 'a':
                echo '"a" for Apple';
            break;
            case 'b':
                echo '"b" for Banana';
            break;
            case 'c':
                echo '"c" for Cat';
            break;
            default:
                echo "'$input' still has to be involved in a case";
        }
    }
}
// Now call the function for each key
array_walk($alpha, 'print_alpha', 'a');
array_walk($alpha, 'print_alpha', 'd');

您可以更合乎逻辑地扩展它。

循环遍历数组元素并打开"键":

foreach($asso_array as $key => $value){
  switch($key)
  {
    case 'something': 
                      if($value === 'something')
                      {
                        echo "then do this";
                      }
                      //You can even do a nested switch on $value here.
                      break;
             default: break;
  }
}

谢谢大家,我使用以下数组结构解决了这个问题:

 $asso_array = array('key1'=>array('a'=>'b'),'key2'=>array('c'=>'d'));
 foreach ( $asso_array as $key =>$val){
   switch($key)
    {
       case 'key1':
          if($asso_array['key1']['a'] == 'something')
            {
               echo $asso_array['key1']['a'];
            }
      case 'key2':
      if($asso_array['key2']['c'] == 'something')
        {
           echo $asso_array['key2']['c'];
        }
    }

}

最新更新