用多行填充PHP数组

用多行填充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

我正在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;医生:使用


从查询返回的表记录中返回索引数组的索引数组

因此,我假设
$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');