Вот один лучший способ (по крайней мере то, что я хотел бы определить, будет лучше):
$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);
Есть много возможностей. Вопрос заключается в том, что вам нужно, и что нужно для остальной части вашего проекта ...
определить «лучше» –
http://www.google.com/search?client = safari & rls = en & q = define: + Better & ie = UTF-8 & oe = UTF-8 –
@ Кевин Браун: -неплодные аплодисменты – BoltClock