无法找到数组的奇怪结果

时间:2015-03-13 09:06:44

标签: php

我似乎无法找到这些问题的答案。我有以下PHP代码。

 $r = 1,2,3,4,5,6 and so on

我希望得到这样的数字

 $result = 1,3,5

或者如果我有

 $s = b,c,d,e,f,g,h,i...and so on

结果应该是

$results c,e,g,i

2 个答案:

答案 0 :(得分:0)

这将有效:

$a = array(1,2,3,4,5,6);
foreach($a as $k => $v){
    if($k&1){
        unset($a[$k]);
    }
} 
print_r($a);

答案 1 :(得分:0)

使用数字非常简单,使用字母的技巧是使用ord()

$arr = array(1,2,3,4,5,6);
$arr = array_filter ($arr, function ($number) {
    return $number % 2;
});
print_r($arr);

$arr = array('a', 'b', 'c', 'd', 'e');
$arr = array_filter ($arr, function ($letter) {
    return ord($letter) % 2;
});
print_r($arr);

输出:

Array (
    [0] => 1
    [2] => 3
    [4] => 5
)
Array (
    [0] => a
    [2] => c
    [4] => e
)

这是一个通用的解决方案,使用字母和数字:

$arr = array_filter ($arr, function ($value) {
    $value = is_int($value) ? $value : ord($value);
    return $value % 2;
});