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

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

分享到: