Php 循环两个数组并匹配值

Php 循环两个数组并匹配值,php,html,Php,Html,我试图在php中循环两个数组,并将输入html表单中的答案匹配在一起 foreach ($getMessageName as $eachMessageName){ echo $eachMessageName . "</br> "; foreach ($getMessage as $eachMessage) { echo $eachMessage . " </br> "; $splitM

我试图在php中循环两个数组,并将输入html表单中的答案匹配在一起

foreach ($getMessageName as $eachMessageName){
    echo $eachMessageName . "</br> ";   
    foreach ($getMessage as $eachMessage) {                 
        echo $eachMessage . " </br> ";
        $splitMessage = explode(" ", $eachMessage);
        foreach ($splitMessage as $sM){
            echo $counter . " </br> " ;
            $counter ++;
            //echo $sM . " </br> ";
}}}
虽然它看起来更像:

name 1
message 1

name 2
message 2
使用array_combine$keys,$values,您可以将两个数组合并到一个关联数组中,这使得进一步的处理更加简单。像这样:

<?php
        $questions = array ('1+1', '2+2', '3+3');
        $answers = array (2, 4, 6);
        $combined = array_combine($questions, $answers);
        foreach($combined as $question => $answer)
        {
                print "{$question} = {$answer}\n";
        }
?>

如果$values数组是多维的,也可以这样做。

准备一个包含输出的多维数组:

foreach ($getMessageName as $eachMessageName)
{
    $array[++$counter] = array('name' => $eachMessageName, 'message' => '');

        foreach ($getMessage as $eachMessage) 
        {
                $splitMessage = explode(" ", $eachMessage);
                foreach ($splitMessage as $sM){
                  $array[$counter]['messages'][] = $eachMessage;
                }
        }
 }
然后你可以用一个循环打印它

foreach ($array as $counter => $line)
{
  echo $counter . ' ' . $line['name'] . ' ' . implode(', ', $line['messages']) . "\n";
}

您得到这样的结果是因为您只需打印所有消息名称的所有消息。我认为你提供的信息较少,无法解决这个问题

数组$getMessageName和$getMessage是否总是具有相同的长度,并且$getMessageName中的每个位置都对应于$getMessage$getMessageName[0]->getMessage[0]中的相同位置,等等。? 如果是这种情况,那么pala_u的回答应该有效,尽管我认为如果您只想打印这些数据,那么它太多了,而且不需要通过简单的迭代组合数组_u就可以轻松完成

如果没有,那么$getMessage是否包含$getMessageName中哪个项目属于哪个项目的任何信息?在这种情况下,我认为你必须增加一些条件

foreach ($getMessageName as $eachMessageName)
{
    $array[++$counter] = array('name' => $eachMessageName, 'message' => '');

        foreach ($getMessage as $eachMessage) 
        {
                $splitMessage = explode(" ", $eachMessage);
                foreach ($splitMessage as $sM){
                  $array[$counter]['messages'][] = $eachMessage;
                }
        }
 }
foreach ($array as $counter => $line)
{
  echo $counter . ' ' . $line['name'] . ' ' . implode(', ', $line['messages']) . "\n";
}