【发布时间】:2014-07-23 04:29:45
【问题描述】:
我有一个 MySQL 数据库,其中有一个名为 users 的表,我需要将其制成一个数组。但它必须能够处理重复值。
当它发现重复值时,它将值连接到一个键下。不过,我只需要加入 user_id 列中的值,因为这将是一个电子商务网站,人们一次可以购买多个商品。
这是我的数据库的样子,特别是名为 queue 的表:
Table Queue:
user_id, item_id
100, 103850
100, 103850
100, 129374
101, 303213
101, 103850
我需要它来返回一个看起来像这样的数组:
array(
100 => array(
'items' => array(
array('item_id' => 103850),
array('item_id' => 103850),
array('item_id' => 129374),
),
),
101 => array(
'items' => array(
array('item_id' => 303213),
array('item_id' => 103850),
),
),
);
现在这是我现在正在使用的代码,它是从我之前提出的另一个问题中得到的,但它并没有真正完整地回答我的问题。
<?php
function getAllUsers() {
$data_from_db = array(
100 => array(
'items' => array(
array('item_id' => 103850),
array('item_id' => 103850),
array('item_id' => 129374),
),
),
101 => array(
'items' => array(
array('item_id' => 303213),
array('item_id' => 103850),
),
),
);
// while loop fetch to array blah blah
$users = $data_from_db;
return $users;
}
if(isset($_GET['jsoncallback'])) {
$data = getAllUsers();
header('Content-Type: application/json');
echo json_encode($data);
exit;
}
?>
上面代码的问题在于它是手动输入到 PHP 脚本中的,而不是使用 MySQL 查询生成的。我希望它使用 MySQL 查询生成,但我在弄清楚如何生成时遇到了很多麻烦。
【问题讨论】:
-
这是我昨天的例子:),你只需要在 db 上做一个简单的选择,我只是用那个虚拟数据作为例子。
标签: php mysql sql arrays associative-array