从 While 循环填充 PHP 数组

Posted

技术标签:

【中文标题】从 While 循环填充 PHP 数组【英文标题】:Populate PHP Array from While Loop 【发布时间】:2011-10-08 03:47:55 【问题描述】:

如果我从 mysql 数据库中获取数据并使用 while 循环遍历数据,我将如何将每个数据添加到数组中?

$result = mysql_query("SELECT * FROM `Departments`");
while($row = mysql_fetch_assoc($result))



【问题讨论】:

【参考方案1】:

在使用while 循环进行迭代时构建一个数组。

$result = mysql_query("SELECT * FROM `Departments`");
$results = array();
while($row = mysql_fetch_assoc($result))

   $results[] = $row;

或者,如果你使用PDO,你可以do this automatically。

【讨论】:

如何在一个数组中只放一列,索引od数组应该是主键? @bhawin 了解 php 数组的工作原理,您会发现它很简单【参考方案2】:

这样就可以了:

$rows = array();
$result = mysql_query("SELECT * FROM `Departments`");
while($row = mysql_fetch_assoc($result))

  $rows[] = $row;

【讨论】:

【参考方案3】:

这是我创建(多维)数组的最快方法之一。我不确定您是否希望将所有结果都压缩到一个数组中。

// Read records
$query = "SELECT * FROM `Departments`"; 
$query = mysql_query($query);

// Put them in array
for($i = 0; $array[$i] = mysql_fetch_assoc($query); $i++) ;

// Delete last empty one
array_pop($array);

您可以使用 print_r($array) 查看结果。

【讨论】:

【参考方案4】:

以下是我的最爱;

$result=odbc_exec($conn,$sql);
if ($result) 
    while($found_results[] = odbc_fetch_array($result))   
    array_pop($found_results); //pop off the empty line from while loading

你不需要弹出最后一行,但如果你省略它,它确实会留下空白。 显然,对于 mysql 也一样。

【讨论】:

【参考方案5】:

如果您的 Departments 表中有多个列,并且您想保存在不同的数组中。

$result = mysql_query("SELECT * FROM `Departments`");
$dept_id = array();
$dept_name=array();
while($row = mysql_fetch_assoc($result))

//fetches and store all results in id column on your departments table
$dept_id= $row['id'];
//fetches and store all results in name column on your departments table    
$dept_name=$row['name'];

【讨论】:

以上是关于从 While 循环填充 PHP 数组的主要内容,如果未能解决你的问题,请参考以下文章

PHP试图在while循环中向数组添加值

PHP——数组中的each(),list()和while循环遍历数组

如何向我的 HTML 表格添加分页?我的表是通过使用 php 的 while 循环动态填充的

使用 while 循环回显 PHP 数组

PHP数组循环?

foreach 循环内的 while 循环仅返回 1 行