Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 二维数组求值和避免内环的有效方法_Php_Arrays_Performance_Big O - Fatal编程技术网

Php 二维数组求值和避免内环的有效方法

Php 二维数组求值和避免内环的有效方法,php,arrays,performance,big-o,Php,Arrays,Performance,Big O,所以我有一个包含大量数据的二维数组,我希望能够使用loop-inside-loop从内部数组中获得一个特定的值。以下是示例阵列: Array ( [0] => Array ( [Field] => id [Type] => int(10) [Null] => NO [Key] => PRI [Default] =>

所以我有一个包含大量数据的二维数组,我希望能够使用loop-inside-loop从内部数组中获得一个特定的值。以下是示例阵列:

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] => 
        )

)
从上面的数组中,我只想使用循环内部循环获取key
字段的值,类似于这样:

$fields = array();
foreach ($columns as $columnSub) {
    foreach ($columnSub as $ckey => $cvalue) {
        if ($ckey === 'Field') {
            $fields[] = $cvalue;
        }
    }
}
然而,由于数组很大,这需要相当长的时间。请问,有没有更快捷的方法使用迭代器从上述二维数组中高效地提取所需的元素值

预期产出:

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

感谢您的帮助

array\u列
很好。PHP>=5.5.0:

$fields = array_column($columns, 'Field');
PHP<5.5.0:

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

array\u列
很可爱。PHP>=5.5.0:

$fields = array_column($columns, 'Field');
PHP<5.5.0:

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