2017-05-03 47 views
-2

我將數據從mySQL數據庫返回到PHP數組中,但我不知道是什麼導致整個數組周圍的額外方括號。我試過玩過它,但我無法擺脫它。我後是如何從php數組中移除雙方括號

([ 「0.00」],[ 「0.00」],[ 「0.00」],[ 「1.80」],[ 「0.00」])

但就是我得到的是

([ 「0.00」],[ 「0.00」],[ 「0.00」],[ 「1.80」],[ 「0.00」])

我的PHP低於

$queryDate = date("Y-m-d"); 
$query = "SELECT windspeed FROM `weather_data` WHERE date_format(timestamp, '%Y-%m-%d') = '" . $queryDate . "'"; 

$result = db_query($query); 

// If query failed, return `false` 
if($result === false) { 
    return false; 
} 

$rows = array(); 
    while ($row = mysqli_fetch_row($result)) { 
    $rows[] = $row; 
    } 

echo $_GET['callback']. '('. json_encode($rows) . ')'; 

請有人可以解釋是什麼導致額外[],我怎麼可以刪除它們?

+0

你使用'json_encode()' –

+0

你有那個輸出,因爲那就是多維數組的json表示。它當然有可能得到你想要的輸出,但是輸出是用來做什麼的? – Steve

+0

什麼是實際查詢輸出 – sujivasagam

回答

0

每個獲取的結果都是一個數組,你將它插入$rows這是一個數組。這導致了一個多維數組。

您可以在獲取所有行後對多維數組進行拼合,然後對其執行json_encode()

所以你的行是這樣的回聲語句之前:

$rows = [["0.00"],["0.00"],["0.00"],["1.80"],["0.00"]]; 

您可以拼合這樣說:

$flattenedRow = array_reduce($rows, function ($a, $b) { 
    return array_merge($a, $b); 
}, []); 

所以,現在你$flattenedRow是:

["0.00","0.00","0.00","1.80","0.00"] 

然後你可以根據需要回顯它:

echo $_GET['callback']. '('. json_encode($flattenedRow) . ')'; 
+0

謝謝。這是做到這一點的唯一方法嗎?或者我可以從mySQL中檢索數據而不是數組,然後只要將它們全部檢索出來放入一個數組中? –