Многомерный массив в массив - PullRequest
3 голосов
/ 04 августа 2011

У меня часто есть двумерный массив:

array(
  array('key' => 'value1'),
  array('key' => 'value2'),
  ...
);

И мне нужно сформировать одномерный массив:

array('value1', 'value2')

Это легко сделать с помощью foreach, но яИнтересно, есть ли какой-нибудь php 5.3 способ сделать это в одной строке.

Ответы [ 4 ]

6 голосов
/ 04 августа 2011
$new_array = array_map(function($el) { return $el['key']; }, $array);
1 голос
/ 30 октября 2012
<?php
    $arr = array(array(141,151,161,140),2,3,array(101,202,array(303,404),407));
    function array_oned($arrays){
        static $temp_array = array();
        foreach($arrays as $key){
            if(is_array($key)){
                array_oned($key);
            }else {
                $temp_array [] = $key;
            }
        }
        return $temp_array;
    }
    echo print_r(array_oned($arr));

?>

Вы имели в виду что-то подобное?

0 голосов
/ 04 августа 2011

В случае, когда у вас есть только одно значение во внутренних массивах:

$values = array_map('array_pop', $yourArray);

Обратным вызовом может быть имя функции, так зачем переопределять то, что уже существует в качестве основной функции? :)

0 голосов
/ 04 августа 2011
array_reduce($array,function($arr,$new){
    $arr[]=$new['key'];
},array())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...