2015-03-13 2 views
0

мне нужно сделать массив массивов местоположения, он должен выглядеть следующим образомPHP Append массив к югу от массива

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

Это не работает Тхо ugh, после этого файл не читается. Он экспортируется в другой формат, поэтому я не вижу, правильно ли он превращается в дерево массивов.

Я читал, как не добавлять PHP массивы здесь http://php.net/manual/en/function.array-merge.php

Я попытался безгнездных $array и вложен в другой массив, как сейчас, не повезло

ответ

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

+0

О, круто, я не знал, что вы можете установить их так – Kiwizoom

+0

@Kiwizoom Вы также можете прочитать об этом здесь: http://php.net/manual/en/language.types.array. PHP # language.types.array.syntax.modifying – Rizier123

1

С вам нужно только нажимать элементы на массив, вы можете просто использовать структуру [] следующим образом:

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