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