PHP-在多维数组上切换

PHP-在多维数组上切换,php,arrays,multidimensional-array,switch-statement,case,Php,Arrays,Multidimensional Array,Switch Statement,Case,我尝试在多维数组上进行切换: $types = array ( 'type1' => array('value1', 'value2'), 'type2' => array('value3', 'value4'); ... ); $prefix = substr($number, 0, 4); foreach ($types as $key => $values) { switch ($prefix) { case 'type1' :

我尝试在多维数组上进行切换:

$types = array (
'type1' => array('value1', 'value2'),
'type2' => array('value3', 'value4');
...
);

$prefix = substr($number, 0, 4);

foreach ($types as $key => $values) {
    switch ($prefix) {
        case 'type1' :
            $type = 'TYPE1';
            break;
        case 'type2' :
            $type = 'TYPE2';
            break;
        ...
      }
}
其中,$前缀等于$types数组中的值


但它不起作用。我想我已经接近解决方案了,但是找不到了(谷歌没有给我更多)。谢谢(:

此代码中没有
$prefix
)。 试试这个:

$types = array (
    'type1' => array('value1', 'value2'),
    'type2' => array('value3', 'value4')
);


foreach ($types as $key => $values) {
    switch ($key) { // $prefix does not exist (at least not according to this code).
        case 'type1' :
            $type = 'TYPE1';
            break;
        case 'type2' :
            $type = 'TYPE2';
            break;
      }

}

我不太明白。
如果
$prefix
=
'value1'
'value2'
'value3'
…您可以尝试以下操作:

foreach ($types as $key => $values) {
    if (in_array($prefix, $values) )
        $type = strtoupper($key);
}

$prefix
->
$key
可能?只是可能…什么是
$prefix
?你的意思是
$key
?编辑:其中$prefix等于$types数组中的一个值;@Rizier123:不起作用。它返回默认值之前的最后一个大小写,这是不正确的。
$prefix
是数组吗?如果是,你永远不会循环通过它!编辑过ain…x)$prefix是一个包含4个数字的字符串,以前是从字符串中提取的。Edited:$prefix是一个包含4个数字的字符串,以前是从字符串中提取的。然后您需要更好地解释您想要做什么,因为很难知道您想要将$prefix与什么进行比较。您想将它与$type的$key(“type1”)或$values(数组(“value1”,“value”)中的任何值进行比较吗?谢谢,这正是我所期望的!(不客气)谢谢你回来。下一次,要更加明确是的,我的第一篇帖子!;)