php有序列表或数组中删除指定的值的实现代码
这篇文章主要介绍了php有序列表或数组中删除指定的值的实现代码,删除给定的值之后,得到一个新的有序列表,长度-1,下面是具体的实现方法。
实现:删除给定的值之后,得到一个新的有序列表,长度-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));