【问题标题】:PHP Append an array to a sub arrayPHP 将数组附加到子数组
【发布时间】:2015-03-13 21:48:43
【问题描述】:

我需要制作一个位置数组,它必须是这样的

$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;
} 

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

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

我尝试了未嵌套的 $array 并像现在一样嵌套在另一个数组中,没有运气

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    只需像这样附加数组:

    $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

    【讨论】:

    【解决方案2】:

    由于您只需要将元素推送到数组,您可以简单地使用[] 结构,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2014-02-24
      • 1970-01-01
      • 2018-03-08
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 2021-07-04
      • 2015-11-12
      相关资源
      最近更新 更多