用多行填充 PHP 数组
Populate PHP Array with multiple Rows
我 运行 在 php 中进行 SQL 查询并返回这样的结果
Name
Joe
Jack
Jerri
Jerry
我需要将其解析为 php 数组,不幸的是,我过去使用的添加到 php 数组的方法不再适用,因为我要返回多行。我将如何更改此语法以便将一列与多行一起填充到我的 php 数组?
$rows = $db->loadRowList();
$output = array();
foreach ($rows as $row) { array_push($output, $row); }
$data = json_encode($output[0]);
TL;DR:使用 loadAssocList('id', 'name')
loadRowList()
returns an indexed array of indexed arrays from the table records returned by the query
因此,我假设 $rows
数组看起来像这样:
Array
(
[0] => Array
(
[0] => Joe
)
[1] => Array
(
[0] => Jack
)
[2] => Array
(
[0] => Jerri
)
[3] => Array
(
[0] => Jerry
)
)
您可以使用 PHP 的 array_column()
从每个子数组中获取单个索引值:
$rows = $db->loadRowList();
$output = array_column($rows, 0);
$output
现在应该包含一个如下所示的数组:
Array
(
[0] => Joe
[1] => Jack
[2] => Jerri
[3] => Jerry
)
我们在这里可以做的一项改进是维护一个关联数组,它将数据库的列名映射到它们的值。 loadAssocList()
可以提供帮助。
$rows = $db->loadAssocList();
$output = array_column($rows, 'name');
请注意,我们现在使用 "name"
索引而不是 0
。
这可以通过使用 loadAssocList()
:
的参数进一步改进
loadAssocList($key, $column)
returns an associative array, indexed on 'key', of values from the column named 'column' returned by the query
使用此方法,我们可以接收ID => Name
键值格式的单个数组:
$ouput = $db->loadAssocList('id', 'name');
我 运行 在 php 中进行 SQL 查询并返回这样的结果
Name
Joe
Jack
Jerri
Jerry
我需要将其解析为 php 数组,不幸的是,我过去使用的添加到 php 数组的方法不再适用,因为我要返回多行。我将如何更改此语法以便将一列与多行一起填充到我的 php 数组?
$rows = $db->loadRowList();
$output = array();
foreach ($rows as $row) { array_push($output, $row); }
$data = json_encode($output[0]);
TL;DR:使用 loadAssocList('id', 'name')
loadRowList()
returns an indexed array of indexed arrays from the table records returned by the query
因此,我假设 $rows
数组看起来像这样:
Array
(
[0] => Array
(
[0] => Joe
)
[1] => Array
(
[0] => Jack
)
[2] => Array
(
[0] => Jerri
)
[3] => Array
(
[0] => Jerry
)
)
您可以使用 PHP 的 array_column()
从每个子数组中获取单个索引值:
$rows = $db->loadRowList();
$output = array_column($rows, 0);
$output
现在应该包含一个如下所示的数组:
Array
(
[0] => Joe
[1] => Jack
[2] => Jerri
[3] => Jerry
)
我们在这里可以做的一项改进是维护一个关联数组,它将数据库的列名映射到它们的值。 loadAssocList()
可以提供帮助。
$rows = $db->loadAssocList();
$output = array_column($rows, 'name');
请注意,我们现在使用 "name"
索引而不是 0
。
这可以通过使用 loadAssocList()
:
loadAssocList($key, $column)
returns an associative array, indexed on 'key', of values from the column named 'column' returned by the query
使用此方法,我们可以接收ID => Name
键值格式的单个数组:
$ouput = $db->loadAssocList('id', 'name');