Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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 如何纠正数组的错误结果_Php_Arrays - Fatal编程技术网

Php 如何纠正数组的错误结果

Php 如何纠正数组的错误结果,php,arrays,Php,Arrays,我有一个有趣的问题,它没有返回预期的结果 我正在从一个数据库中提取一个包含50个名字的列表,并将它们放入一个数组中,效果很好。然后我需要能够将姓氏的首字母添加到数组中。当尝试这样做时,最终生成的数组只以{NAME}z结尾,而不是预期的结果。这是我现在的密码 $init_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', '

我有一个有趣的问题,它没有返回预期的结果

我正在从一个数据库中提取一个包含50个名字的列表,并将它们放入一个数组中,效果很好。然后我需要能够将姓氏的首字母添加到数组中。当尝试这样做时,最终生成的数组只以{NAME}z结尾,而不是预期的结果。这是我现在的密码

$init_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

foreach($names as $id=>$name){

    foreach($init_array as $ks=>$vs){
        $names[$id] = $name . ' ' . $vs . '<br>';
    }
}




foreach($names as $id=>$name){

    echo $name . '<br>';
}
事实上,它应该显示:

Arnetta a

Arnetta b

Arnetta c
等等。所以我的问题是-数组对它可以存储的数据量有限制吗?事实上,我已经设置了一个内存限制:

ini_set('memory_limit', '1024M');
代码似乎正确地将姓氏的预期首字母添加到名称数组中。我对代码的开发方式有错误吗?根据预期结果调整代码的正确方法是什么


提前谢谢。

您正在将这些值覆盖到数组的同一索引中,因此它包含数组的最后一个值。请尝试以下多维数组

$init_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

foreach($names as $id=>$name){

    foreach($init_array as $ks=>$vs){
        $names[$id][] = $name . ' ' . $vs . '<br>';
    }
}



print_r($names);

您只是一次又一次地覆盖名称数组中的值。听起来您想连接名称而不是覆盖名称。因此,最后,您想让$names中的每个名称对数组中的每个字母都有一个变量?侧面提示-缩短那个丑陋的大字母数组,如$init_数组=范围'a','z';那么,您希望结果中有26*[number of$names]行吗?这与数组计数无关,也无法解决当前的问题。
$init_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

foreach($names as $id=>$name){

    foreach($init_array as $ks=>$vs){
        $names[$id][] = $name . ' ' . $vs . '<br>';
    }
}



print_r($names);
$count=0;

foreach($names as $id=>$name){

    $names[$id] = $name . ' ' . $init_aray[$count]. '<br>';
    $count++;

}