2014-09-13 3 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

Как женщина и мужчина, также как в первом массиве, зачем вам это нужно в цикле оба массива? –

+0

это не имеет никакого смысла. Начнем с самого начала. Что такое «мужчина»? Это строка? объект? –

+0

Вывод, который вы хотите распечатать, не требует двух циклов foreach –

ответ

0

Вы упоминали, что оба этих массивов может исходить от выхода MySQL, так что давайте предположим, что там может быть больше, чем просто два ряда в каждом из этих массивов и принять более гибкое решение.

На простом уровне, похоже, то, что вы пытаетесь сделать, - это цикл через первый массив и эхо из ограниченного набора значений, основанный на появлении этих значений в другом массиве.

Вы можете сделать это довольно просто, используя комбинацию foreach и in_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;