PDO - array_map返回键中的对象ID

时间:2018-04-24 12:18:39

标签: php pdo array-map

嘿,我有返回键的数组

$temp = $sth->fetchAll(PDO::FETCH_ASSOC);

我的结果如下:

[0] => [
    'id' = 11,
    'title' => 't1'
]

[1] => [
    'id' = 12,
    'title' => 't2'
]

如果我想以钥匙的形式返回ID,我会这样称呼:

$temp = array_map(function($v){return $v[0];}, $sth->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC));

我的回复看起来像这样:

[11] => [
    'title' => 't1'
]

[12] => [
    'title' => 't2'
]

如何通过ID返回对象数组?当我这样做时,我没有对象中的方法......

$temp = array_map(function($v){return $v[0];}, $sth->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_CLASS));

3 个答案:

答案 0 :(得分:3)

我会做更简单的代码,如下所示: -

$fianl_array = array_combine(array_column($temp,'id'),$temp);

输出: - https://eval.in/993728

参考: -

array_column()

array_combine()

答案 1 :(得分:0)

使用foreach:

foreach($input as $k=>$v){
    $output[$v['id']] = array('title'=>$v['title']);
}
print_r($output);

答案 2 :(得分:0)

只需将此作为答案添加,因为我认为这是最简单的方法,使用array_column()和第三个参数,这是您希望数据索引的键。如果您使用null作为第二个参数,它将使用' id'将所有数据编入索引,您可以改为使用' title'这只会通过ID ...

索引标题列
$output = array_column($temp,null,'id');

这给了......

Array
(
    [11] => Array
        (
            [id] => 11
            [title] => t1
        )

    [12] => Array
        (
            [id] => 12
            [title] => t2
        )

)