我似乎找不到这些问题的答案。我有以下 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
数字很容易,字母的诀窍是使用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;
});
这将起作用:
$a = array(1,2,3,4,5,6);
foreach($a as $k => $v){
if($k&1){
unset($a[$k]);
}
}
print_r($a);