将两个数据库列合并为一个数组值php

时间:2012-10-04 03:04:27

标签: php arrays

我有一个数组,我从MySql数据库创建并在json中编码。

$data_array = array();
    while ($row = mysql_fetch_assoc($result)) {
         $data_array[$row['city']] = $row['state']; 
}

 echo json_encode($data_array);

正如所料,它正在输出:

{"DALLAS":"WV","DALLAS CENTER":"IA","DALLAS CITY":"IL","DALLASTOWN":"PA","LAKE DALLAS":"TX"}

我需要json数据看起来像这样:

{"DALLAS, WV","DALLAS CENTER, IA","DALLAS CITY, IL","DALLASTOWN, PA","LAKE DALLAS, TX"}

我似乎无法在Stack Overflow上的任何地方找到正确答案,所以如果这是一个重复的问题我会提前道歉。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

而不是这个,作为键值对

while ($row = mysql_fetch_assoc($result)) {
  $data_array[$row['city']] = $row['state']; 
}

像这样生成

while ($row = mysql_fetch_assoc($result)) {
  $data_array[] = $row['city'].",".$row['state']; 
}

答案 1 :(得分:0)

您目前正在使用以下内容构建阵列:

$data_array[$row['city']] = $row['state'];

这将导致json为'city': 'state'

尝试将其更改为您想要的格式:

$data_array[] = $row['city'] . ', ' . $row['state']; 

现在,您应该按照'city, state'的方式使用json。

答案 2 :(得分:0)

你应该试试

$data_array[] = $row['city'] . "," . $row['state'];

mysql _ *

上的PHP_DOC
  

不鼓励使用此扩展程序。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括: