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

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

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

代码:

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wkk
  5. * Time: 2021/7/11 - 01:03
  6. * Desc: <线性表>
  7. */
  8. namespace php;
  9. class ListArray
  10. {
  11. // 从一个线性表中删除给定的值
  12. public function deleteValue($list, $value)
  13. {
  14. // 记录是否找到
  15. $flag = false;
  16. // 记录这个$value值的位置
  17. $pos = 0;
  18. // 存储删除value之后的线性表
  19. $newList = [];
  20. if (!$list) {
  21. $flag = false;
  22. }
  23. // 查找这个给定的值
  24. foreach ($list as $k => $item) {
  25. if ($value === $item) {
  26. $flag = true;
  27. $pos = $k;
  28. break;
  29. } else {
  30. $flag = false;
  31. }
  32. }
  33. // 如果没找到,直接返回原线性表
  34. if (!$flag) {
  35. return $list;
  36. }
  37. // 在被删除的value之前的数据,保留
  38. for ($j = 0; $j < $pos; $j++) {
  39. $newList[$j] = $list[$j];
  40. }
  41. // var_dump($newList);die;
  42. // 如果找到了,删除这个值,其他的值从这个位置开始 依次往前进一位
  43. for ($i = $pos; $i < count($list) - 1; $i++) {
  44. // 往前挪一位
  45. $newList[$i] = $list[$i + 1];
  46. }
  47. return $newList;
  48. }
  49. }
  50. $listObj = new ListArray();
  51. $array = [1, 3, 4, 7, 9, 10, 33];
  52. $newList = $listObj->deleteValue($array, 1);
  53. var_dump(json_encode($newList));