Вы упоминали, что оба этих массивов может исходить от выхода 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
Как женщина и мужчина, также как в первом массиве, зачем вам это нужно в цикле оба массива? –
это не имеет никакого смысла. Начнем с самого начала. Что такое «мужчина»? Это строка? объект? –
Вывод, который вы хотите распечатать, не требует двух циклов foreach –