如何纠正数组

时间:2015-05-18 18:31:41

标签: 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', '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 z

Arnette z

Arnita z

Arnold z

Arnoldo z

实际上它应该显示:

Arnetta a

Arnetta b

Arnetta c

等等。所以我的问题是这个 - 数组是否限制了它可以存储的数据量?事实上我设置了内存限制:

ini_set('memory_limit', '1024M');

并且代码似乎是正确的,将名字的预期第一个首字母添加到名称数组中。我对代码的开发方式不正确吗?调整代码以获得预期结果的正确方法是什么?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

您正在将值覆盖到相同的数组索引,因此它包含数组的最后一个值try multidimentional数组,如下所示

$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);

答案 1 :(得分:-1)

$count=0;

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

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

}