从二维数组中获取值并避免内部循环的有效方法


efficient way of getting a value and avoiding inner loop from two dimensional array

所以我有一个具有大量数据的二维数组,我希望能够使用循环内循环从内部数组中获得一个特定的值。下面是一个示例数组:

Array
(
    [0] => Array
        (
            [Field] => id
            [Type] => int(10)
            [Null] => NO
            [Key] => PRI
            [Default] => 
            [Extra] => auto_increment
        )
    [1] => Array
        (
            [Field] => name
            [Type] => varchar(100)
            [Null] => NO
            [Key] => 
            [Default] => 
            [Extra] => 
        )
    [2] => Array
        (
            [Field] => active
            [Type] => enum('Y','N')
            [Null] => NO
            [Key] => 
            [Default] => Y
            [Extra] => 
        )
)

从上面的数组中,我想获得键Field的值,只像这样使用循环内循环:

$fields = array();
foreach ($columns as $columnSub) {
    foreach ($columnSub as $ckey => $cvalue) {
        if ($ckey === 'Field') {
            $fields[] = $cvalue;
        }
    }
}

然而,由于数组很大,这需要相当长的时间。有没有更快的方法使用迭代器从上面的二维数组中取出所需的元素值,以一种有效的方式?

预期输出:

Array
(
    [0] => id
    [1] => name
    [2] => active
)

Thanks for the help

array_column是甜的。PHP:

$fields = array_column($columns, 'Field');

PHP & lt;发送:

foreach($columns as $array) {
    if(isset($array['Field'])) {
        $fields[] = $array['Field'];
    }
}
$fields = array();
foreach($array as $key => $values) 
{
    $fields[] = $values['Field'];
}
var_dump($fields);