当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-05-12 11:42:23 浏览: 评论:0 

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

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

代码:

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

Tags: php有序列表 php删除指定值

分享到: