PHP将数组附加到子数组

时间:2015-03-13 21:48:43

标签: php arrays

我需要创建一个位置数组数组,它​​必须看起来像这样

$relevanceKeys = array(
    'locations' => array(

        array(
            'longitude' => '123456',
            'latitude' => '123456'
        ),
        array(
            'longitude' => '123456',
            'latitude' => '123456'
        )
         ... more arrays
    )  

);

但是我需要动态生成它们,所以它开始像

$relevanceKeys = array(
    'locations' => array(  

    )  
);

然后我想从我在数据库中找到的行中添加每个数组:

while ($row = $result->fetch_object()) {
   $array = array(
               array (
       'longitude' => $row->longitude,
        'latitude' => $row->latitude
           )
   );

$relevanceKeys['locations'] = $relevanceKeys['locations'] + $array;
} 

但这不起作用,之后文件无法读取。它被导出为不同的格式,所以我无法看到它是否正确地变成了数组树。

我从这里阅读了如何附加PHP数组http://php.net/manual/en/function.array-merge.php

我试过unnested $array并嵌套在另一个数组中,就像现在一样,没有运气

2 个答案:

答案 0 :(得分:2)

只需按照以下方式附加数组:

$relevanceKeys['locations'][] = $array;
                         //^^ See here

你不必一直合并它们!

另外我想你想改变这个:

$array = array(
             array (
                 'longitude' => $row->longitude,
                 'latitude' => $row->latitude
             )
       );

以获得您期望的结构:

$array = array(
             'longitude' => $row->longitude,
             'latitude' => $row->latitude
       );

有关数组的详细信息,请参阅手册:http://php.net/manual/en/language.types.array.php

答案 1 :(得分:1)

由于您只需要将元素推送到数组,因此您只需使用[]结构,如下所示:

while ($row = $result->fetch_object()) 
{
    $relevanceKeys['locations'][] = array (
        'longitude' => $row->longitude,
        'latitude' => $row->latitude
    );
}