在 php 中有一种方法可以从每个子数组中获取一个元素而无需循环 - 从效率的角度考虑。
说出以下数组:
$array = array(
array(
'element1' => a,
'element2' => b
),
array(
'element1' => c,
'element2' => d
)
);
我想要 $array 中的所有 'element1' 值
在 php 中有一种方法可以从每个子数组中获取一个元素而无需循环 - 从效率的角度考虑。
说出以下数组:
$array = array(
array(
'element1' => a,
'element2' => b
),
array(
'element1' => c,
'element2' => d
)
);
我想要 $array 中的所有 'element1' 值
有许多不同的函数可以为您操作数组,具体取决于所需的输出......
$array = array(
array(
'element1' => 'a',
'element2' => 'b'
),
array(
'element1' => 'c',
'element2' => 'd'
)
);
// array of element1s : array('a', 'c')
$element1a = array_map(function($item) { return $item['element1']; }, $array);
// string of element1s : 'ac'
$element1s = array_reduce($array, function($value, $item) { return $value . $item['element1']; }, '');
// echo element1s : echo 'ac'
array_walk($array, function($item) {
echo $item['element1'];
});
// alter array : $array becomes array('a', 'c')
array_walk($array, function(&$item) {
$item = $item['element1'];
});
有用的文档链接:
如果您运行的是 PHP 5.5(目前 beta-4 可用),那么以下
$element1List = array_column($array, 'element1');
应该将 $element1List 作为一个简单的数组,其中包含 $array 中每个元素的 element1 值
$array = array(
array(
'element1' => a,
'element2' => b
),
array(
'element1' => c,
'element2' => d
)
);
$element1List = array_column($array, 'element1');
print_r($element1List);
给
Array
(
[0] => a
[1] => c
)
没有循环?递归!
$array = array(
array(
'element1' => 'a',
'element2' => 'b'
),
array(
'element1' => 'c',
'element2' => 'd'
)
);
function getKey($array,$key,$new = array()){
$count = count($array);
$new[] = $array[0][$key];
array_shift($array);
if($count==1)
return $new;
return getKey($array,$key,$new);
}
print_R(getKey($array,'element1'));
正如我从 Wikipedia Recursion中了解到的那样,递归不是循环。