Php 二维数组求值和避免内环的有效方法
所以我有一个包含大量数据的二维数组,我希望能够使用loop-inside-loop从内部数组中获得一个特定的值。以下是示例阵列: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] =>
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'];
}
}