如何使用array_filter过滤掉甚至索引值?

时间:2012-11-08 13:47:39

标签: php arrays array-filter

我试图通过偶数索引号来过滤掉值,但是进展不顺利。 $ date作为完整数组返回但缺少最后一个索引。这是因为我正在使用explode()?

这是我的代码;

$route = "Dest A:0900:Dest B:0930:Dest C:1000";

$route_array = explode(":", $route);

foreach($route_array as $key){
    if(!($key & 1)){
        $date[] .= $key;
    }
}
return $date;

3 个答案:

答案 0 :(得分:1)

你的循环应该是这样的

foreach($route_array as $k=>$key){
    if(($k+1)%2 == 0){
        $date[] = $key;
    }
}

答案 1 :(得分:1)

我认为这是问题:

foreach($route_array as $key)

您调用变量$key,但实际上它将包含该数组元素的值。

相反,您应该执行以下操作:

foreach($route_array as $key => $value)

然后检查$ key是奇数还是偶数。 现在$ value将包含目的地或时间。

答案 2 :(得分:0)

感谢答案的人......

好的,五分钟后,我有一个灯泡时刻,想出了一个解决方案;

$route = "Dest A:0900:Dest B:0930:Dest C:1000";
$route_array = explode(":", $route);

foreach($route_array as $key => $value){
    if(!($key & 1)){
        $date[] .= $route_array[$key];
    }
}
return $date;