2014-09-13 319 views
-2

这些是我的两个数组。如何同时执行两个foreach循环

array 1 :: 

     Array ([0] => Array ([questionID] => 103 [answer] => Female [answer_cnt] => 9) [1] => Array ([questionID] => 103 [answer] => Male [answer_cnt] => 11)); 

array 2 :: 

     Array ([0] => Male [1] => Female) 

我想打印输出是这样的:

Female : 9 
Male :11 

其中女性和男性从第二阵列自带。

请问您能帮我吗?

+0

女性和男性也都在第一阵列中,为什么你需要循环两个阵列? – 2014-09-13 11:01:38

+0

这没有任何意义。让我们从头开始。什么是“男”?这是一个字符串?一个东西? – 2014-09-13 11:02:13

+0

您要打印的输出不需要2个foreach循环 – 2014-09-13 11:03:40

回答

0

你提到的这两个阵列可以来自MySQL的输出,让我们假定有可能不只是在每个阵列的两排更,采取更加灵活的解决方案。

在一个简单的级别上,它看起来像你要做的是循环遍历第一个数组,并根据这些值在另一个数组中的外观回显出有限的一组值。

你可以用foreachin_array的组合简单地做到这一点。

$answers = array(
    array(
     'questionID' => 103, 
     'answer'  => 'Female', 
     'answer_cnt' => 9 
    ), 
    array(
     'questionID' => 103, 
     'answer'  => 'Male', 
     'answer_cnt' => 11 
    ) 
); 

$genders = array(
    'Male', 
    'Female' 
); 

// Loop through the answers, checking each to see if they have 
// a match in the gender array 
foreach ($answers as $answer) { 
    if (in_array($answer['answer'], $genders)) { 
     echo $answer['answer']. ": " . $answer['answer_cnt'] . "\n"; 
    } 
} 

输出:

Female: 9 
Male: 11 
1

你想这样做吗?

$arr1 = Array (0 => Array ('questionID' => 103 ,'answer' => 'Female','answer_cnt' => 9), 
1 => Array ('questionID' => 103 ,'answer' => 'Male' ,'answer_cnt' => 11 ,)); 

$arr2 = Array (0 => 'Male' ,1 => 'Female'); 

$male = $arr2[0] .':'. $arr1[1]['answer_cnt']; 
$female = $arr2[1] .':'. $arr1[0]['answer_cnt']; 

echo $female.'</br>'; 
echo $male; 
相关问题