是否有特定的函数将数组中的数组作为键或值移动到父数组中。
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可以实现吗?
答案 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);