[英]Array of inner most values in associative array in PHP
I have an Array of the form-
$description: array(2)
0: array(2)
0:
name: john
age: 10
1:
name: mary
age: 15
1: array(2)
0:
name: mark
age: 12
1:
name: susan
age: 8
我最终要寻找的只是所有四个年龄的数组。
年龄:数组(10,15,12,8)
这可以在不使用 foreach 循环的情况下实现吗? 我尝试了 array_column 和 array_values 的混合,但不知何故我得到了相同的数组。
通过flattening
数组然后mapping
数组的示例。
<?php
$array = [
[
['name' => 'john', 'age' => 10,],
['name' => 'mary', 'age' => 15,],
],
[
['name' => 'mark', 'age' => 12,],
['name' => 'susan', 'age' => 8,],
]
];
$flatten_array = array_merge(...$array);
$output = array_map(function ($item) {
return $item['age'];
}, $flatten_array);
var_dump($output);
您可以使用 array_walk 来做到这一点
$array = [
[
[
'name' => 'john',
'age' => 10,
],
[
'name' => 'marry',
'age' => 15,
]
],
[
[
'name' => 'mark',
'age' => 12,
],
[
'name' => 'susan',
'age' => 8,
]
],
];
$ages = [];
array_walk_recursive($array, function($value, $key) use(&$ages) {
if( $key == 'age' ) {
$ages[] = $value;
}
});
print_r($ages); // result [10, 15, 12, 8]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.