实现:删除给定的值之后,得到一个新的有序列表,长度-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));

到此这篇关于php有序列表或数组中删除指定的值的实现代码的文章就介绍到这了,更多相关php有序数组删除内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!