我们需要一个控制结构,例如接受关联数组作为参数的开关盒,或类似下面的东西:
php代码:
$asso_array = array($key => $value);
switch ($asso_array) {
case $asso_array[$key]:
if ($asso_array[$value] == 'something') {
echo'then do this';
}
}
答案 0 :(得分:3)
使用foreach
,因为数组中的$ key将具有多个值:
foreach($array as $key => $value){
switch($value){
case 'something':
echo 'then do this';
break;
default:
echo 'else do something else';
}
}
答案 1 :(得分:0)
您可能想要使用一个功能:
<?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);
}
答案 2 :(得分:0)
循环遍历数组元素并打开&#39;键&#39;:
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;
}
}
答案 3 :(得分:0)
我认为以下代码可以帮助您更好 - -
$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');
您可以更合理地扩展它。
答案 4 :(得分:-1)
非常感谢大家,我通过使用以下数组结构解决了这个问题:
$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'];
}
}
}