这篇文章主要介绍了php有序列表或数组中删除指定的值的实现代码,删除给定的值之后,得到一个新的有序列表,长度-1,下面是具体的实现方法
实现:删除给定的值之后,得到一个新的有序列表,长度-1
代码:
`<?php/**
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));`
相关推荐
© 2020 asciim码
人生就是一场修行