Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Foreach和字符串连接_Php_String_Foreach_Concatenation - Fatal编程技术网

PHP Foreach和字符串连接

PHP Foreach和字符串连接,php,string,foreach,concatenation,Php,String,Foreach,Concatenation,使用两个关联数组和一个嵌套的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

使用两个关联数组和一个嵌套的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;

再次查看您的阵列
$list1=array('1'=>'1','1'=>'2','1'=>'3','1'=>'4');
$list2=array('a'=>'a','a'=>'b','a'=>'c','a'=>'d');
打印(列表1);
印刷品(清单2)


您已经用同一个键创建了一个关联数组,所以实际上您所做的只是
$list1=array('1'=>'4')
$list2=array('a'=>'d')

要检查数组,请执行以下操作

echo "<pre>";
echo print_r($list1);
echo "</pre>";
为了得到您想要的答案,首先需要将关联数组调整为如下所示

$array = array();
foreach($list1 as $key1 => $value1){

$letters = '';
foreach($list2 as $key2 => $value2){
    $letters .= $value2;
}
$output .= $value1;
$output .= $letters . '<br>';

}

echo $output;
然后你可以继续做这个

$list1 = array('0' => '1', '1' => '2', '2' => '3', '3' => '4');
$list2 = array('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd');
$array=array();
foreach($list1作为$key1=>$value1){
$letters='';
foreach($list2as$key2=>$value2){
$letters.=$value2;
}
$output.=$value1;
$output.=$letters.“
”; } echo$输出;

我希望这能有所帮助。

请注意,您说您正在构建一个关联数组,“关联”表示每个“唯一”键都有一个值。在数组中,您正在一次又一次地覆盖您的值,请记住,键就像您要存储值的“位置”。如果在同一位置或键中存储不同的值,则会覆盖该值

正确的方法是:

$list1 = array('0' => '1', '1' => '2', '2' => '3', '3' => '4');
$list2 = array('0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd');
如果看到每个值都有不同的位置或键

如果您运行代码,它现在应该可以工作了。如果你注意的话,你会发现你甚至不需要字母作为钥匙


通过尝试这两种方法,您将对数组有更多的了解。这是最基本的。

一个数组中不能有多个具有相同键的条目:
$list1=array('1'=>'1','1'=>'2','1'=>'3','1'=>'4')
在数组中定义4个条目,每个条目具有相同的键(
1
)<代码>$list2=array('a'=>'a','a'=>'b','a'=>'c','a'=>'d')定义了4个条目,所有条目都具有相同的键(
a
)。。。。。你为什么还要定义关键点呢?你不需要这么做so@Mark贝克:这是回答,不是评论。
$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');