如何只显示json中的值而不是key:value对?

时间:2015-10-19 09:46:57

标签: php jquery json mysqli

我有我的mysqli查询:

$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

你能帮帮我吗?

2 个答案:

答案 0 :(得分: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);

?>

答案 1 :(得分:0)

使用array_map遍历行值,array_values忽略键(列名称),您可以执行以下操作:

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