1

我有代码可以创建一个或多个 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;
    }

显然我正在循环无穷大,因为它使用了所有内存。

4

3 回答 3

3

使用foreach循环遍历数组的所有元素。

foreach($array as $key => $value) {
    $batch[] = array('EMAIL'=>$value['per_Email'], 'FNAME'=>$value['per_FirstName'], 'LNAME'=>$value['per_LastName']);
}
于 2013-06-19T19:38:57.057 回答
2

Instead you should use a for loop

for($x = 0; $x<count($array); $x++){
    $batch[] = array('EMAIL'=>$array[$x]['per_Email'], 'FNAME'=>$array[$x]['per_FirstName'], 'LNAME'=>$array[$x]['per_LastName']);
}
于 2013-06-19T19:39:20.207 回答
2

why not use foreach and avoid counters and unnecessary checks?

foreach($array as $eachArray)
{
    $batch[] = array('EMAIL'=>$eachArray['per_Email'], 'FNAME'=>$eachArray['per_FirstName'], 'LNAME'=>$eachArray['per_LastName']);
    }
于 2013-06-19T19:41:16.010 回答