我们需要一个控制结构,比如开关案例,接受关联数组作为参数或类似以下内容:
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'];
}
}
}