MySQL数据库搜索返回多维数组?

时间:2014-06-13 02:10:27

标签: php mysql arrays multidimensional-array

如果我的表格如此:

user | language
-----|---------
john | english
john | french
john | spanish

是否有我可以运行的查询以便我回来:

["john"=>["english", "french", "spanish"]]

我试图避免做以下事情:

$john->languages = array();
foreach($results as $row){
    array_push($john->languages, $row["language"]);
}

2 个答案:

答案 0 :(得分:2)

这是传统方式

$user_languages = array();
foreach($result as $row) {
  $user_languages[$row['user']][] = $row['language'];
}

答案 1 :(得分:2)

如果您使用PDO,则可以使用其FETCH_GROUP选项:

$stmt = $db->prepare("SELECT user, language FROM table");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP, 0);

第三个参数是用于分组的零索引列号。参见

http://www.php.net//manual/en/pdostatement.fetchall.php

例如。