0

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

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

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

4

2 回答 2

0

我能想到的唯一方法是在函数中创建 foreach 语句,然后使用 is_array() 检查它是否是一个数组,如果为真,它会将数组传递给函数。

function check_array($array){
foreach ($array as $key=>$value){
 if(is_array($value)){
  check_array($value);}
 else { ...do something with $value...}
}
于 2013-03-21T23:03:39.803 回答
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];
}

这不是 foreach,而是 1 个循环。

于 2013-03-21T23:14:06.920 回答