2017-04-21 111 views
0

我想创造从MySQL数据库JSON数组,我试着使用MySQL查询结果来创建如下JSON数组对象,php json数组没有索引?

$sql = "select DateTime ,Val1 from my table order by DateTime ASC ;"; 
$result = $db->query($sql); 
$data = array(); 
$rowary = array(); 

while($row = mysqli_fetch_array($result)) 
{ 
    $rowary['DateTime'] = $row['DateTime '] ; 
    $rowary['Val1'] = $row['Val1 '] ; 
    array_push($data,$rowary); 
    } 
echo '<pre>' . var_export($data, true) . '</pre>'; 

回声结果是:

Array 
(
    [0] => Array 
    (
     [DateTime] => 2017-02-09 12:27:23 
     [Val1] => 21.0333 
    ) 

    [1] => Array 
    (
     [DateTime] => 2017-02-09 16:18:13 
     [Val1] => 23.116699 
    ) 

) 

,但我想要的结果是这样的:

Array 
(
    Array 
    (
     [DateTime] => 2017-02-09 12:27:23 
     [Val1] => 21.0333 
    ) 

    Array 
    (
     [DateTime] => 2017-02-09 16:18:13 
     [Val1] => 23.116699 
    ) 


) 

请告诉我该怎么做?

+1

这是一回事。要访问第一个元素,你应该使用'print_r($ data [0]);'。这将打印第一个包含'2017-02-09 12:27:23'的数组作为DateTime。 '0,1,2 ....'是键/索引。你不能有没有键的数组。 –

回答

2

有数组结构必须有方法让你访问这些数组值,你提出的新建议你不能访问内容,正常数组是[value,value2,....,valuen]和那些被自动索引为0,1,...,n

对于你来说,数组有内部数组,它必须遵循上面解释的顺序,因为父类是一个Array => [array1, array2,....,arrayn]

而且这些内层数组也必须像父数组那样操作,它必须在数据结构中为每个插槽取值。

因此,你的工作不会顺利进行,或者你可能正在考虑其他的东西(数据结构)而不是数组。