Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 如何在循环值处于循环外部时移动_Php_Arrays_While Loop - Fatal编程技术网

Php 如何在循环值处于循环外部时移动

Php 如何在循环值处于循环外部时移动,php,arrays,while-loop,Php,Arrays,While Loop,我有一个更复杂的问题,我正试图解决,但这一切归结为从while循环中获取mysql\u fetch\u数组值,以便在其他地方使用这些值进行比较 例如: $result = mysql_query("SELECT name FROM Names"); while ($data = mysql_fetch_array($result)) { $val = $data['name']; //let's say there are 5 names here// $array1 =

我有一个更复杂的问题,我正试图解决,但这一切归结为从while循环中获取mysql\u fetch\u数组值,以便在其他地方使用这些值进行比较

例如:

 $result = mysql_query("SELECT name FROM Names");
 while ($data = mysql_fetch_array($result))
 {
   $val = $data['name'];
   //let's say there are 5 names here//
   $array1 = array($val);
 }

 //now, I would like to use the five names outside of the loop//
我不明白如何把这五个名字都从这个循环中去掉。我把它们放在一个数组中,但是当我从循环外部打印数组时,我得到的只是最后一条记录。如果我从循环中打印数组,我将获得所有记录


是否可以将值存储在循环中,从循环中移动它们,然后在其他地方使用它们?

您每次都在循环中设置
$array1
。您需要将
$val
添加到数组中,而不是将数组设置为
$val

$result = mysql_query("SELECT name FROM Names");
while ($data = mysql_fetch_array($result))
{
    $val = $data['name'];
    $array1[] = array($val);
}

请注意,您正在覆盖数组的是
$array1[]=
,而不是
$array1=
。每次循环执行时,它都会覆盖该值,因此只会得到最后一个值。 试一试


你可以这样做:

 $result = mysql_query("SELECT name FROM Names");
 $dataset = array();
 while ($data = mysql_fetch_array($result))
 {
   $dataset[] = $data;
 }
然后您可以在循环外部自由使用
$dataset

$array1 = array();
$result = mysql_query("SELECT name FROM Names");
while ($data = mysql_fetch_array($result)){
 $val = $data['name'];
  //let's say there are 5 names here//
  $array1[] = $val;
}
$array1 = array();
$result = mysql_query("SELECT name FROM Names");
while ($data = mysql_fetch_array($result)){
 $val = $data['name'];
  //let's say there are 5 names here//
  $array1[] = $val;
}