合并和循环多维数组

时间:2015-06-18 06:32:29

标签: php arrays

我正在尝试使用foreach循环某个数组。这是演示我正在做什么的代码

     $q = "SELECT * "
       ."FROM ".TBL_FRUITSDETAILS."";
        $fruitsdetails = $database->query($q);
        $var = array();
    while($line = mysql_fetch_assoc($fruitsdetails)){
       $var[] = $line;
    }


  $q = "SELECT * "
       ."FROM ".TBL_NUMDETAILS."";
        $numdetails = $database->query($q);
        $var2 = array();
    while($line2 = mysql_fetch_assoc($numdetails)){
         $var2[] = $line2;
        // $n++;
    }

$out = array();
foreach ($var as $key => $value){
   // $out[] = array_merge_recursive($value, $var2[$key]);

    foreach ($var2 as $key => $value) {
        $out1[] = array_merge_recursive($var[$key], $var2[$key]);
    }
}


print_r(json_encode($out1));

然而,这输出

appleone
bananatwo
appleone
bananatwo

我希望将其显示为

appleone
appletwo
bananaone
bananatwo

3 个答案:

答案 0 :(得分:2)

我认为你的循环应该是这样的。无需使用array_merge_recursive函数

$var = array (1,2);    
$var2 = array ('a','b');
$result = array();
foreach($var as $key => $val){
    foreach($var2 as $k => $v){
        $result[] = $val.$v;
    }
}

答案 1 :(得分:2)

试试这个,

$var = array (1,2);    
$var2 = array (a,b);

$out = array();
foreach ($var as $key => $value){
    foreach($var2 as $k=>$v){
        $out[] = $value.$v;
    }
}
print_r(json_encode($out));

答案 2 :(得分:1)

没有必要使用array_merge_recursive只需一个嵌套循环就足够了:

$var = array (1,2);    
$var2 = array ('a','b');


$out = array();
foreach($var as $arrayNumeric){
  foreach($var2 as $arrayAlphaNumeric){
      $out[] = $arrayNumeric.$arrayAlphaNumeric;
  }
}