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”)中的任何值进行比较吗?谢谢,这正是我所期望的!(不客气)谢谢你回来。下一次,要更加明确是的,我的第一篇帖子!;)