使用两个关联数组和一个嵌套的foreach循环,我想回应这个文本:
1abcd
2abcd
3abcd
4abcd
但不知何故,我得到了4d
。我已多次查看代码,我知道它必须非常简单,但我无法找到问题。
<?php
$output = "";
$list1 = array('1' => '1', '1' => '2', '1' => '3', '1' => '4');
$list2 = array('a' => 'a', 'a' => 'b', 'a' => 'c', 'a' => 'd');
foreach($list1 as $key1 => $value1)
{
$letters = '';
foreach($list2 as $key2 => $value2)
{
$letters .= $value2;
}
$output .= $value1;
$output .= $letters . '<br>';
}
echo $output;
拜托,帮我解决这个问题!! 谢谢
答案 0 :(得分:0)
要检查阵列,请执行此操作
echo "<pre>";
echo print_r($list1);
echo "</pre>";
它将返回此
Array
(
[1] => 4
)
1
为了得到你想要的答案,首先你需要将你的关联数组调整为这样的
$list1 = array('1' => '1', '2' => '2', '3' => '3', '4' => '4');
$list2 = array('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd');
然后你可以继续这样做
$array = array();
foreach($list1 as $key1 => $value1){
$letters = '';
foreach($list2 as $key2 => $value2){
$letters .= $value2;
}
$output .= $value1;
$output .= $letters . '<br>';
}
echo $output;
我希望这会有所帮助。
答案 1 :(得分:-1)
再看一下你的阵列
$list1 = array('1' => '1', '1' => '2', '1' => '3', '1' => '4');
$list2 = array('a' => 'a', 'a' => 'b', 'a' => 'c', 'a' => 'd');
print_r($list1);
print_r($list2);
您已使用相同的密钥创建了关联数组,因此您所做的一切都是$list1 = array('1'=>'4')
和$list2 = array('a'=>'d')
答案 2 :(得分:-1)
请注意,您说您正在构建一个关联数组,&#34; associative&#34;意味着每个&#34;唯一&#34; key会有一个值。在你的数组中,你一遍又一遍地重写你的价值观,记住,关键就像是&#34;地点&#34;你想存储价值。如果您在同一个地方或密钥中存储不同的值,它将被覆盖。
正确的方法:
$list1 = array('0' => '1', '1' => '2', '2' => '3', '3' => '4');
$list2 = array('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd');
如果您发现每个值都有不同的位置或键。
如果你运行你的代码,它现在应该工作。如果你注意,你会注意到你甚至不需要字母作为钥匙。
$list1 = array('0' => '1', '1' => '2', '2' => '3', '3' => '4');
$list2 = array('0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd');
通过尝试两者,您将了解有关数组的更多信息。这是非常基础的。