gpt4 book ai didi

检索由特定列索引的结果的 PHP 约定?

转载 作者:行者123 更新时间:2023-11-29 02:26:03 28 4
gpt4 key购买 nike

我经常需要检索结果并按给定列访问它们。

有没有一种方法可以不用每次都遍历整个数据集来编写它?

我研究了各种 PDO 获取模式,但没有发现比这更简单的模式。谢谢。

function get_groups() {
$stmt = $dbc->prepare("SELECT * FROM groups ORDER BY group_name");
$stmt->execute();

$groups = $stmt->fetchAll();

$return = [];

foreach($groups as $group) {
$return[$group['id']] = $group;
}

return $return;
}

最佳答案

我提出的解决方案已经过时了。正确的解决方案来自this answer

$stmt = $pdo->query("SELECT foo,baz FROM bar")
$groupedByFooValuesArray = $stmt->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE)

要按另一列分组,请更改您选择的第一列


如果您的目标是让相同的数组由不同的列值索引,我认为唯一的选择是实际按不同的列值对它们进行索引。

您可以通过控制返回数组的字段来做到这一点

function get_groups($sql,$key,$values='') {
if ($values != '') {
$stmt = $dbc->prepare($sql);
$stmt->execute($values);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
else {
$rows = $dbc->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}
foreach ($rows as $row) {
$indexed[$row[$key]] = $row;
}
return $indexed;
}

然后,使用 get_groups 构建索引数组:

$sql = 'SELECT * FROM groups ORDER BY group_name'
var_dump(get_groups($sql,'id'));

可能有一种方法可以以某种方式存储结果集,您可以多次使用 fetchAll() 它,那会很棒。但我不知道。

关于检索由特定列索引的结果的 PHP 约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21687091/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com