如何在不使用任何循环的情况下从PHP中获取数组中的键值

时间:2015-04-14 11:27:54

标签: php arrays loops

我的数组的值从 1到10000

开始
$a= array(1,2,....,10000);

我甚至想要键值而不使用任何循环,怎么可能?

4 个答案:

答案 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>';