用两个条件过滤数组php

时间:2019-07-09 18:14:31

标签: php

我正在尝试通过以下两个条件获取数组的底值:

  1. 从底部获取所有数字值,直到下一个值是字符串,然后停止指令,并保留所有其他值,即使它们是数字
  2. 如果从底部开始的第一个值是字符串,请跳过它们并执行第一个条件。

<?php $data=[1,2,3,'web',4,5,6,'web',7,8,9]; ?>

输出为7 8 9。

<?php $data= [1,2,3,'web',4,5,6,'web',7,8,9,'web','web']; ?>

<?php $data= [1,2,3,'web',4,5,6,'web',7,8,9,'web']; ?>

两个条件的输出都相同:7 8 9。

1 个答案:

答案 0 :(得分:1)

逻辑:反转数组并检查给定元素是否为整数,如果为整数,则将其放入临时数组,否则,检查是否已经完成保存整数数据的过程开始,如果是,则中断循环,否则继续循环。最后,再次反转数组以获取相同格式的数据。

<?php
$data= [1,2,3,'web',4,5,6,'web',7,8,9,'web'];
$process = false;
foreach(array_reverse($data) as $d){
    if(is_int($d)){
        $process = true;
        $temp[] = $d;
    }
    else if($process) break;
}
$result = array_reverse($temp);
print_r($result);
?>