我将PDOStatement::fetchAll与FETCH_GROUP和FETCH_ASSOC一起使用,以获取表的主键作为数组键.
$objects = $stmt_obj->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_CLASS);
这将导致以下结果:
Array
(
[56] => Array
(
[0] => stdClass Object
(
...
)
)
[39] => Array
(
[0] => stdClass Object
(
...
)
)
[38] => Array
(
[0] => stdClass Object
(
...
)
)
[71] => Array
(
[0] => stdClass Object
(
...
)
)
)
剥离我使用的无用编号数组的结果
$objects = array_Map('reset', $objects);
如下所述: https://www.php.net/manual/en/pdostatement.fetchall.php#88699个 或者在这里: https://gist.github.com/betweenbrain/9239337
在PHP 8.2中,我得到一个警告:
PHP Warning: reset(): Argument #1 ($array) must be passed by reference, value given
我还可以使用其他什么方法来处理无用的编号数组,并得到以下结果:
Array
(
[56] => stdClass Object
(
...
)
[39] => stdClass Object
(
...
[38] => stdClass Object
(
...
)
[71] => stdClass Object
(
...
)
)