从MySQL查询构建数组?

时间:2015-08-04 14:13:34

标签: php mysql arrays

有人可以告诉我如何从MySQL查询创建数组吗?

数组应如下所示:

<?php
$testLocs = array(
    '1' => array( 'info' => '1. New Random info and new position', 'lat' => 45345345, 'lng' => 44.9634 ),
    '2' => array( 'ino'  => '1. New Random info and new position', 'lat' => 686788787, 'lng' => 188.9634),
    '3' => array( 'info' => '1. New Random info and new position', 'lat' => 88888, 'lng' => 144.9634),
    '4' => array( 'info' => '1. New Random info and new position', 'lat' => 666666, 'lng' => 144.964 )
);
echo json_encode($testLocs);
exit();
?>

info文字latlng数字是MySQL $rows

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

阅读manual

从PHP手册中获取的示例

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);

答案 1 :(得分:1)

如果我没有正确地解决它,你需要将mysql数组结果映射到某种规范化数组。函数array_map对它来说是完美的:

$array = array_map(function ($row) {
    return array(
        'info'  => $row['info'],
        'lat'   => $row['lat'],
        'lng'   => $row['lng'],
    );
}, $rows);

如果您需要从1开始的索引,您还应该添加以下行:

$array = array_combine(range(1, count($array)), $array);

答案 2 :(得分:1)

obj.Test(notTest: null)

显然用正确的查询替换查询。

PS。这是mysql方式,而不是mysqli方式。可能值得同时考虑两者。