回答編集履歴

1 蛇足

mpyw

mpyw score 4991

2017/01/02 03:54  投稿

# PHP7.0以降
```php
$comment_ids = array_column($array, 'comment_id');
```
# PHP5.6以前
```php
$comment_ids = array_map(function ($v) { return $v->comment_id; }, $array);
```
- 5.6以前でも「オブジェクトの配列」ではなく「連想配列の配列」なら `array_column`を適用できます。
- そもそも最初から `comment_id` だけを抜いてくるようにSQL関連のコードを書くべきかも?
5.6以前でも「オブジェクトの配列」ではなく「連想配列の配列」なら `array_column`を適用できます。
###### 蛇足1: もしデータベースから取ってきたものの場合
そもそも最初から `comment_id` だけを抜いてくるようにSQL関連のコードを書くべきかも?
[PDOフェッチパターン大全 - Qiita](http://qiita.com/mpyw/items/d52351bd1a8068344cc2)
連想配列系のフェッチは↑に全部まとまってます。オブジェクト系は省略してますが…
連想配列系のフェッチは↑に全部まとまってます。オブジェクト系は省略してますが…
###### 蛇足2: もしAPIからの返り値を`json_decode`したものの場合
`json_decode`の第2引数にtrueを渡すことで,オブジェクトになっている部分を連想配列に交換できます。ただしオブジェクトのほうがキー参照が簡単に書けるメリットはあるので,必ずしもこの方法をおすすめするわけではありませんし,先述のようにPHPバージョンを7.0以降にすればこのままでも`array_column`で解決できます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る