Вот один из лучших способов (по крайней мере, то, что я бы определил, чтобы быть лучше):
$reportIds = array();
$dataArray = $data['report']->result_array();
foreach($dataArray as $reportElement) {
$reportIds[] = $reportElement['id'];
}
Он использует более значимые имена переменных (как я догадываюсь) и немного более подробный о том, что происходит. Помните, что удобочитаемость превосходит все остальные проблемы, за исключением правильности.
Конечно, в зависимости от потребностей того, что вы делаете, вы также можете написать метод для извлечения только идентификаторов (вдоль стороны result_array()
) или итератор, чтобы сделать это для вас:
class MultiDimensionalArrayIterator extends ArrayIterator {
protected $key = '';
public function __construct(array $array, $key) {
$this->key = $key;
parent::__construct($array);
}
public function current() {
$data = parent::current();
return $data[$this->key];
}
public function offsetGet($index) {
$data = parent::offsetGet($index);
return $data[$this->key];
}
// Implement other overrides to consistently handle iteration
}
Использование:
$dataArray = $data['report']->result_array();
$iterator = new MultiDimensionalArrayIterator($dataArray, 'id');
$reportIds = iterator_to_array($iterator);
Есть много возможностей. Вопрос в том, что вам нужно, и что нужно остальной части вашего проекта ...