Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当数组为空时进行while循环?_Php_Mysql_Loops - Fatal编程技术网

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

Php 当数组为空时进行while循环?,php,mysql,loops,Php,Mysql,Loops,我有一些代码可以生成一个或多个长度未知的数组,因为这取决于mysql数据库中添加了多少新成员。(这就是我感到困惑的地方) 该数组有$x个项目,每个项目都是一个名、姓和电子邮件地址的数组 我希望循环一直运行到数组结束 $x = 0; while($array[$x]['per_LastName'] != 'NULL') { $batch[] = array('EMAIL'=>$array[$x]['per_Email'], 'FNAME'=>$array[$x]['per_Fi

我有一些代码可以生成一个或多个长度未知的数组,因为这取决于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;
    }

显然,我在循环无限,因为它使用了所有的内存

使用一个
foreach
循环,该循环将遍历数组的所有元素

foreach($array as $key => $value) {
    $batch[] = array('EMAIL'=>$value['per_Email'], 'FNAME'=>$value['per_FirstName'], 'LNAME'=>$value['per_LastName']);
}

使用一个
foreach
循环,该循环将遍历数组的所有元素

foreach($array as $key => $value) {
    $batch[] = array('EMAIL'=>$value['per_Email'], 'FNAME'=>$value['per_FirstName'], 'LNAME'=>$value['per_LastName']);
}

相反,您应该使用
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']);
}
for($x=0;$x$array[$x]['per_Email'],'FNAME'=>$array[$x]['per_FirstName'],'LNAME'=>$array[$x]['per_LastName']);
}

相反,您应该为循环使用

for($x = 0; $x<count($array); $x++){
    $batch[] = array('EMAIL'=>$array[$x]['per_Email'], 'FNAME'=>$array[$x]['per_FirstName'], 'LNAME'=>$array[$x]['per_LastName']);
}
for($x=0;$x$array[$x]['per_Email'],'FNAME'=>$array[$x]['per_FirstName'],'LNAME'=>$array[$x]['per_LastName']);
}

为什么不使用foreach并避免计数器和不必要的检查

foreach($array as $eachArray)
{
    $batch[] = array('EMAIL'=>$eachArray['per_Email'], 'FNAME'=>$eachArray['per_FirstName'], 'LNAME'=>$eachArray['per_LastName']);
    }

为什么不使用foreach并避免计数器和不必要的检查

foreach($array as $eachArray)
{
    $batch[] = array('EMAIL'=>$eachArray['per_Email'], 'FNAME'=>$eachArray['per_FirstName'], 'LNAME'=>$eachArray['per_LastName']);
    }

为什么不在这里使用
foreach
foreach($array as$val){$val['per_LastName']}
值得一提的是,您的循环当前正在无限循环,因为您正在与
'NULL'
进行比较。单引号表示这是一个字符串,其中包含单词NULL,这与实际的NULL值不同。为什么不在这里使用
foreach
foreach($array as$val){$val['per_LastName']}
值得一提的是,您的循环当前正在无限循环,因为您正在与
'NULL'
进行比较。单引号表示这是一个字符串,其中包含NULL一词,与实际的NULL值不同。Works。谢谢你能详细说明一下它的工作原理吗?或者把我和一些东西联系起来。我搜索了很多,但没有找到这样做的方法。一个
foreach
循环遍历数组的每个元素
$array
,并为每个元素运行循环。
$key=>$value
表示数组元素的键将存储在
$key
中,其值将存储在
$value
中。有关更多信息,请参阅。谢谢你能详细说明一下它的工作原理吗?或者把我和一些东西联系起来。我搜索了很多,但没有找到这样做的方法。一个
foreach
循环遍历数组的每个元素
$array
,并为每个元素运行循环。
$key=>$value
表示数组元素的键将存储在
$key
中,其值将存储在
$value
中。有关更多信息,请参阅。