当前位置 博文首页 > php有序列表或数组中删除指定的值的实现代码

    php有序列表或数组中删除指定的值的实现代码

    作者:alisleepy 时间:2021-09-19 19:04

    实现:删除给定的值之后,得到一个新的有序列表,长度-1

    代码:

    <?php
    /**
     * Created by PhpStorm.
     * User: wkk
     * Time: 2021/7/11 - 01:03
     * Desc: <线性表>
     */
    
    namespace php;
    
    class ListArray
    {
        // 从一个线性表中删除给定的值
        public function deleteValue($list, $value)
        {
            // 记录是否找到
            $flag = false;
            // 记录这个$value值的位置
            $pos = 0;
            // 存储删除value之后的线性表
            $newList = [];
    
            if (!$list) {
                $flag = false;
            }
    
            // 查找这个给定的值
            foreach ($list as $k => $item) {
                if ($value === $item) {
                    $flag = true;
                    $pos  = $k;
                    break;
                } else {
                    $flag = false;
                }
            }
    
            // 如果没找到,直接返回原线性表
            if (!$flag) {
                return $list;
            }
    
            // 在被删除的value之前的数据,保留
            for ($j = 0; $j < $pos; $j++) {
                $newList[$j] = $list[$j];
            }
            // var_dump($newList);die;
    
            // 如果找到了,删除这个值,其他的值从这个位置开始 依次往前进一位
            for ($i = $pos; $i < count($list) - 1; $i++) {
                // 往前挪一位
                $newList[$i] = $list[$i + 1];
            }
    
            return $newList;
    
        }
    }
    
    $listObj = new ListArray();
    
    $array = [1, 3, 4, 7, 9, 10, 33];
    $newList = $listObj->deleteValue($array, 1);
    var_dump(json_encode($newList));
    jsjbwy
    下一篇:没有了