繁体   English   中英

PHP 中关联数组中最内层值的数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM