2015-10-19 37 views
1

我有我的mysqli查詢:如何只顯示json中的值而不是鍵:值對?

$fetchTransactions = "SELECT * FROM transaction WHERE client_id = '$client_id'"; 
$result = $mysqli->query($fetchTransactions); 
$data = array();  
$data = $result->fetch_all(MYSQLI_ASSOC); 
echo json_encode($data); 

它返回JSON作爲:

[{"transaction_id":"1","client_id":"2","total_price":"100.70","creation_date":"2015-10-18 03:00:00","unique_hash":"ABCDEF"}, 
{"transaction_id":"2","client_id":"2","total_price":"88.20","creation_date":"2015-10-18 04:00:00","unique_hash":"GHIJK"}] 

取而代之的是,我想在這裏呈現在表單中的數據:

{ 
    "data": [ 
    [ 
     "1", 
     "2", 
     "100.70", 
     "2015-10-18 03:00:00", 
     "ABCDEF" 
    ], 
    [ 
     "2", 
     "2", 
     "88.20", 
     "2015-10-18 03:00:00", 
     "GHIJK" 
    ], 

,因爲我需要這個json格式來提供從這裏取得的數據表:https://datatables.net/examples/data_sources/ajax.html

你能幫我嗎?

回答

1

而不是將$data轉換爲json,循環它。 array_values函數將從關聯數組中提取所有數組值。

<?php 
$newarray = array(); 
foreach($data as $d){ 
    // save array values to $newarray 
    $newarray['data'][] = array_values($d); 
} 

$json_newarray = json_encode($newarray); 

echo print_r($json_newarray, true); 

?> 
0

使用array_map通過行值迭代和array_values忽略鍵(列名),你可以做到以下幾點:

echo json_encode(array('data' => array_map('array_values', $data)));