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



如果我有一个表,看起来像这样:

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"]);
}

如果你使用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

为例子。

这是常规方法

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

相关内容

  • 没有找到相关文章

最新更新