2015-03-13 36 views
0

我似乎无法找到这些问题的答案。我有以下的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 
+0

只需检查数组的密钥是偶数/亲爱的。 – 2015-03-13 09:09:30

+0

怎么样?我是初学者 – user3835444 2015-03-13 09:10:37

回答

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; 
}); 
0

这将工作:

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