使用1个foreach搜索多维数组?

时间:2013-03-21 23:00:39

标签: php

我想在函数中最小化嵌套的foreach循环。但问题是,我使用的是2D数组,如下所示:

    $Multi_Array = array (
        'Users' => array ('User1', 'User2'),
        'Passwords' => array ('Pass1', 'Pass2'),
        'Warnings' => array (1, 30),
        'Admin' => array ('True', 'False')      
    );

我目前有两个foreach循环来处理我的数组。如何最小化嵌套的foreach循环并仅使用1?

2 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是在函数中创建foreach语句,然后让它检查它是否是使用is_array()的数组,并且在true时,它会将数组传递给函数。

function check_array($array){
foreach ($array as $key=>$value){
 if(is_array($value)){
  check_array($value);}
 else { ...do something with $value...}
}

答案 1 :(得分:0)

我不确定这是不是你想要的,但是这样的事情怎么样:

for ($i=0;$i<count($Multi_Array['Users']);$i++)
{
    $users[$Multi_Array['Users'][$i]]['Password'] = $Multi_Array['Passwords'][$i];
    $users[$Multi_Array['Users'][$i]]['Warning'] = $Multi_Array['Warnings'][$i];
    $users[$Multi_Array['Users'][$i]]['Admin'] = $Multi_Array['Admin'][$i];
}

这不是预告,但它是1循环。