将JSON数组合并为单个值

时间:2014-04-22 11:56:33

标签: php json

我正在尝试连接几个json键值,以便我只能返回包含所有数据的单个值。例如,在我的代码中,我想将address1,address2,address3组合到Address中。这可能吗。我尝试了各种使用。=的方法,但似乎没有任何工作。任何抬头都会感激不尽。感谢

$query = "SELECT * FROM company_com";
$from = 0; 
$to = 30;
$query .= " LIMIT ".$from.",".$to;

$result = mysql_query($query) or die("SQL Error 1: " . mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $customers[] = array(
        'Address1' => $row['address1_com'],
        'Address2' => $row['address2_com'],
        'Address3' => $row['address3_com']
      );
}

echo json_encode($customers);

2 个答案:

答案 0 :(得分:3)

你可以很好地重写这个......

$customers = array(); $i=0; 
$result = mysql_query($query) or die("SQL Error 1: " . mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $customers[$i]['Address1'] = $row['address1_com'];
    $customers[$i]['Address2'] = $row['address2_com'];
    $customers[$i]['Address3'] = $row['address3_com'];
    $i++;
}
echo json_encode($customers);

已完成的更改:

  • $customers数组声明已移出while
  • 标记$i=0;设置在while
  • 之外
  • $customers数组是二维的,因为您可以看到$i作为键传递。
  • 最后,$i递增..

<强> EDIT :

<?php
$customers = array(); $i=0;
$result = mysql_query($query) or die("SQL Error 1: " . mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $customers[$i]['Address'] = $row['address1_com']." ".$row['address2_com']." ".$row['address3_com'];
    $i++;
}
echo json_encode($customers);

答案 1 :(得分:0)

我不太了解你的问题。

确保列名正确无误。 address1_com, address2_com, etc.

在每次迭代时使用print_r($row);测试代码。 print_r显示数组的内容。

另外,我建议你做的是将每个地址组合成一个数组。例如......

'Address' => array(
    $row['address1_com'],
    $row['address2_com'],
    $row['address3_com']
)