Есть ли определенная функция для перемещения массива, который находится в массиве в родительский массив как ключ или значение.
array(5) { [0]=> array(1) { [0]=> string(2) "id" } [1]=> array(1) { [0]=> string(7) "buydate" } [2]=> array(1) { [0]=> string(6) "expire" } [3]=> array(1) { [0]=> string(6) "planid" } [4]=> array(1) { [0]=> string(5) "buyer" } }
Результат, который я хотел бы получить, это:
array() { [0] => 'id', [1] => 'buydate' etc. }
Или
array('id', 'buydate' etc.. )
Можно ли добиться успеха без foreach?
array_map()
чрезвычайно эффективен и должен делать трюк:
$array = ... ; // your initial array $flattened_array = array_map(function($item) { return $item[0]; }, $array);
Если вы хотите сгладить нужный массив и использовать foreach
вы можете сделать это таким образом.
Рассмотрим этот пример:
// Sample data: $values = array( 0 => array( 0 => 'id', ), 1 => array( 0 => 'buydate', ), 2 => array( 0 => 'expire', ), 3 => array( 0 => 'planid', ), 4 => array( 0 => 'buyer', ), ); $new_values = array(); foreach($values as $key => $value) { $new_values[] = $value[0]; } print_r($new_values);
Результат выборки:
Array ( [0] => id [1] => buydate [2] => expire [3] => planid [4] => buyer )
Или, альтернативно, вы можете iterator
. Рассмотрим этот пример:
$new_values = array(); $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($values)); foreach($iterator as $value) { $new_values[] = $value; }
Он должен дать вам тот же результат.