将数组中的数组移动到父数组php

时间:2014-05-07 21:45:38

标签: php arrays

是否有特定的函数将数组中的数组作为键或值移动到父数组中。

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可以实现吗?

2 个答案:

答案 0 :(得分:1)

如果要展平所需的数组,并使用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;
}

它应该给你相同的输出。

答案 1 :(得分:1)

array_map()非常强大,应该可以解决问题:

$array = ... ; // your initial array
$flattened_array = array_map(function($item) {
    return $item[0];
}, $array);