1

作为 MySQL 查询的结果,我得到了以下数组:

Array
(
    [0] => Array
        (
            [id] => 11
            [owner] => Mark
        )

    [1] => Array
        (
            [id] => 10
            [owner] => David
        )

    [2] => Array
        (
            [id] => 9
            [owner] => Poul
        )

    [3] => Array
        (
            [id] => 8
            [owner] => Peter
        )

    [4] => Array
        (
            [id] => 7
            [owner] => Peter
        )

    [5] => Array
        (
            [id] => 6
            [owner] => Lucas
        )

)

有没有办法修改它,使用 PHP 函数并省略该foreach过程?

我希望它看起来如下:

Array
(
    11 => Mark
    10 => David
    9 => Poul
    8 => Peter
    7 => Peter
    6 => Lucas
)

id所以,基本上它应该从和owner值构建这个数组。喜欢id => owner

那可能吗?

4

2 回答 2

2

如果您使用的是 PDO,则可以执行以下操作:

$stmt = $dbh->query("SELECT id, owner FROM table");
$arr = $stmt->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);

这应该给你一个数组,其中数组的索引是结果中第一列的值,即 id。

于 2012-09-12T23:31:15.137 回答
0

如果您的原始数组是$arr那么以下代码将根据需要更改它:

$tot = count($arr);
for($i=0;$i<$tot;$i++) {
   $key = $arr[$i]['id'];
   $val = $arr[$i]['owner'];
   unset($arr[$i]);
   $arr[$key] = $val;
}
于 2012-09-12T23:38:23.887 回答