当数组为空时进行while循环?

时间:2013-06-19 19:35:46

标签: php mysql loops

我的代码会生成一个或多个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;
    }
显然我正在循环无限,因为它使用了所有内存。

3 个答案:

答案 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']);
    }