Par*_*lia 8 php arrays multidimensional-array
我有一个多维数组,比如x列数和y行数.
我特别想要第3列中的所有值.
这样做的显而易见的方法是将它放在这样的for循环中
for(i=0;i<y-1;i++)
{
$ThirdColumn[] = $array[$i][3];
}
Run Code Online (Sandbox Code Playgroud)
但是这里涉及O(n)的明显时间复杂性.有没有内置的方法让我只需从数组中提取每一行而无需循环.
例如(这不适用)
$ThirdColumn = $array[][3]
Run Code Online (Sandbox Code Playgroud)
Igo*_*rra 23
给定一个二维数组$channels:
$channels = array(
array(
'id' => 100,
'name' => 'Direct'
),
array(
'id' => 200,
'name' => 'Dynamic'
)
);
Run Code Online (Sandbox Code Playgroud)
一个很好的方法是使用array_map:
$_currentChannels = array_map(function ($value) {
return $value['name'];
}, $channels);
Run Code Online (Sandbox Code Playgroud)
如果你是一个通过array_column的potentate(php 5.5+):
$_currentChannels = array_column($channels, 'name');
Run Code Online (Sandbox Code Playgroud)
两者都导致:
Array
(
[0] => Direct
[1] => Dynamic
)
Run Code Online (Sandbox Code Playgroud)
星座客人: array_map(php4 +)和array_column(php5.5 +)
// array array_map ( callable $callback , array $array1 [, array $... ] )
// array array_column ( array $array , mixed $column_key [, mixed $index_key = null ] )
Run Code Online (Sandbox Code Playgroud)
尝试这个....
foreach ($array as $val)
{
$thirdCol[] = $val[2];
}
Run Code Online (Sandbox Code Playgroud)
您最终会得到第三列中所有值的数组