我有一个有趣的问题,即没有返回预期的结果。
我从数据库中提取了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');
并且代码似乎是正确的,将名字的预期第一个首字母添加到名称数组中。我对代码的开发方式不正确吗?调整代码以获得预期结果的正确方法是什么?
提前谢谢。
答案 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++;
}