我的代码会生成一个或多个UNKNOWN长度的数组,因为它取决于有多少新人被添加到mysql数据库中。 (这是我感到困惑的地方)
该数组包含$ x项,每个项都是名字,姓氏和电子邮件地址的数组。
我希望循环运行直到数组结束。
$x = 0;
while($array[$x]['per_LastName'] != 'NULL') {
$batch[] = array('EMAIL'=>$array[$x]['per_Email'], 'FNAME'=>$array[$x]['per_FirstName'], 'LNAME'=>$array[$x]['per_LastName']);
$x = $x+1;
}
显然我正在循环无限,因为它使用了所有内存。
答案 0 :(得分:3)
使用foreach
循环遍历数组的所有元素。
foreach($array as $key => $value) {
$batch[] = array('EMAIL'=>$value['per_Email'], 'FNAME'=>$value['per_FirstName'], 'LNAME'=>$value['per_LastName']);
}
答案 1 :(得分:2)
相反,您应该使用for
循环
for($x = 0; $x<count($array); $x++){
$batch[] = array('EMAIL'=>$array[$x]['per_Email'], 'FNAME'=>$array[$x]['per_FirstName'], 'LNAME'=>$array[$x]['per_LastName']);
}
答案 2 :(得分:2)
为什么不使用foreach并避免计数器和不必要的检查?
foreach($array as $eachArray)
{
$batch[] = array('EMAIL'=>$eachArray['per_Email'], 'FNAME'=>$eachArray['per_FirstName'], 'LNAME'=>$eachArray['per_LastName']);
}