用多行填充PHP数组
我正在php中运行一个SQL查询,并返回如下结果用多行填充PHP数组,php,arrays,joomla,joomla3.2,Php,Arrays,Joomla,Joomla3.2,我正在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_encod
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;医生:使用
从查询返回的表记录中返回索引数组的索引数组 因此,我假设
$rows
数组如下所示:
Array
(
[0] => Array
(
[0] => Joe
)
[1] => Array
(
[0] => Jack
)
[2] => Array
(
[0] => Jerri
)
[3] => Array
(
[0] => Jerry
)
)
您可以使用PHP的array\u column()
从每个子数组中获取一个索引值:
$rows = $db->loadRowList();
$output = array_column($rows, 0);
$output
现在应该包含一个如下所示的数组:
Array
(
[0] => Joe
[1] => Jack
[2] => Jerri
[3] => Jerry
)
我们在这里可以做的一个改进是维护一个关联数组,它将数据库的列名映射到它们的值。我可以帮忙
$rows = $db->loadAssocList();
$output = array_column($rows, 'name');
请注意,我们现在使用的是“name”
索引,而不是0
这可以通过使用loadAssocList()的参数进一步改进:
返回由查询返回的名为“column”的列中的值的关联数组(按“键”索引)
使用此方法,我们可以接收ID=>Name
键值格式的单个数组:
$ouput = $db->loadAssocList('id', 'name');