2015-09-04 97 views
1

我需要使用一些数组并匹配它们,实际上我找到了一个解决方案,但这不是一个完美的解决方案,因为我没有3($ array)如何使用foreach打印另一个foreach? :d结合多个数组php

其实我用这个解决方案:

//options 
$array = ["13", "14", "15"]; 
$tutti = [ 
    "111" => "13", 
    "222" => "13", 
    "333" => "14", 
    "444" => "14", 
    "555" => "14", 
    "666" => "14", 
    "777" => "15", 
    "888" => "15" 
]; 

$realarray = []; 
$n_arrays = count($array); // 3 options 

if ($n_arrays > 1) { // there is more of 1 option 
    foreach ($tutti as $key => $value) { 
     if ($value == $array[0]) { 
      foreach ($tutti as $key2 => $value2) { 
       if ($value2 != $array[0] && $value2 != $array[2]) { 
        foreach ($tutti as $key3 => $value3) { 
         if ($value3 != $array[0] && $value3 != $array[1]) { 
          echo "$key -> $key2 -> $key3<br>"; 
          $realarray[] = "$key,$key2,$key3"; 
         } 
        } 
       } 
      } 
     } 
    } 
} 

print_r($realarray); 
+0

你想完成什么? – hellaminx

+0

添加一些示例输出 – nathanmac

+0

是的,请提供预期的输出。并澄清这一点:“因为我没有3($阵列)”你是什么意思? – cyadvert

回答

0

尝试建立一个新的数组是这样的:

$new_arr = Array(); 
foreach($tuttui AS $k => $v){ 
    $new_arr[$v][] = $k; 
} 

然后检查第一阵列中的$值较大的一个被发现:

for($i=0; $i < count($array); $i++){ 
    if(in_array($array[$i], $new_arr[$array[$i]])){ 
     //Then do whatever you need 
    } 
}