2015-03-13 34 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);