实现:删除给定的值之后,得到一个新的有序列表,长度-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));
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)