PHP : create a specific array from MySQL database

标签 php mysql arrays

我想从 MySQL 数据库中存储的(以及其他)数据构建一个数组。

我的代码就是这样:

<?php

// STUFF ABOUT CONNECTION TO DATABASE

// Informations about host, login and so on

$query = 'SELECT * FROM maj';
$dbquery = mysql_query($query);

// Parse the dbquery

$geojson = array(
'type' => "FeatureCollection",
'features' => $feature
 );

while($row = mysql_fetch_assoc($dbquery)) {
    $feature = array(
        'location' => $row['location'], 
      'geometry' => array(
      'type' => 'Point')
        );

array_push($geojson, $feature);
}

// Return routing result
print_r($geojson);

?>

我得到以下数组(前两个元素):

Array
(
    [type] => FeatureCollection
    [features] => 
    [0] => Array
    (
        [location] => Hollywood, CA
        [geometry] => Array
            (
                [type] => Point
            )

    )

    [1] => Array
    (
        [location] => Ventura County
        [geometry] => Array
            (
                [type] => Point
            )

    )

)

但是我想获得一个包含该内容的数组(“features”内部也有一个数组):

Array
(
    [type] => FeatureCollection
    [features] => Array
      (
        [0] => Array
            (
                [location] => Hollywood, CA
                [geometry] => Array
                    (
                        [type] => Point
                    )

            )

        [1] => Array
            (
                [location] => Ventura County
                [geometry] => Array
                    (
                        [type] => Point
                    )

            )
       )
  )

我该怎么办?
非常感谢!

最佳答案

初始化$feature并将其作为对$geojson的引用传递:

$feature = array();
$geojson = array(
  'type' => "FeatureCollection",
  'features' => &$feature
);

删除 array_push() 并将其追加分配给 $feature:

while($row = mysql_fetch_assoc($dbquery)) {
    $feature[] = array(
      'location' => $row['location'], 
      'geometry' => array(
      'type' => 'Point')
    );

   // the above is sugar for: array_push($feature, array( 'location' => ... ) );
}

您对 print_r() 的调用应该会产生您现在期望的结果。

关于PHP : create a specific array from MySQL database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25463567/

相关文章:

mysql - 使用 MySQL 为交叉表提取第二个值

mysql - 如果列值为 null 或为空,则在 mysql 表中搜索时忽略该列

java - 访问 JSONArray 中内部数组的值

php - MySQL STR_TO_DATE 函数暂时不起作用

php - 最小化 HTML、PHP 或 CSS 文件对网页来说真的是一个很大的改进,还是没有什么大的区别?

php - 如何创建一个循环来传递MySQL表中的空数据

java - 如何找到 int[] 中的第 K 个最大差异?

php - 将数组拆分为 N 个数组 - PHP

php - Facebook 集成 - 您是否需要单独的页面来与自定义对象交互,或者页面上可以有多个对象吗?

php - SQL Laravel GroupBy 并显示所有记录