我的数组的值从 1到10000
开始$a= array(1,2,....,10000);
我甚至想要键值而不使用任何循环,怎么可能?
答案 0 :(得分:5)
您可以查看使用array_filter()。
我从那个确切的页面修改了下面的内容;
<?php
function even($var) {
return(!($var & 1));
}
$array = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
print_r(array_filter($array, "even"));
?>
答案 1 :(得分:1)
另一种奇怪的方式:
$a = range(1, 10000); // initial
$b = range(1, 10000, 2); // odd
$c = array_diff($a, $b); // even
答案 2 :(得分:1)
我喜欢Ghost的回答,所以我想如何修改它,以防你真的想要偶数键而不是值:
<?php
$values = range(1, 10000); // initial values
$keys = range(0, (count($values) - 1), 2); // even keys as array values
$keys = array_flip($keys); // even keys as array keys
$result = array_intersect_key($values, $keys); // intersection based on keys
答案 3 :(得分:0)
使用range(1,10000)
array_filter生成数组,
$even=array_filter(range(1,10000),
function ($input) {
return !($input & 1);
});
echo '<pre>';
print_r($even);
echo '</pre>';