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

实现:删除给定的值之后,得到一个新的有序列表,长度-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));

到此这篇关于php有序列表或数组中删除指定的值的实现代码的文章就介绍到这了,更多相关php有序数组删除内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-08-21

PHP中unset,array_splice删除数组中元素的区别

如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排: <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> 结果是: Array ( [0] => a [2] => c [3] => d )   那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice(): <?php $arr = array('a','b','c','d

PHP删除数组中指定值的元素常用方法实例分析【4种方法】

本文实例讲述了PHP删除数组中指定值的元素.分享给大家供大家参考,具体如下: 测试数组如下: //这是一个测试数组 $testArr = array( 't' => 'qq', 'q' => 'qq', 'b' => 'baidu', 'a' => 'ali', 'm' => 'xiaomi' ); 方法一: //foreach遍历后unset删除,这种方法也是最容易想到的方法 function delByValue($arr, $value){ if(!is_array($

php 删除一维数组中某一个值元素的操作方法

1. 自己写for循环 从array里去掉$tmp这个元素的值 <?php $tmp = '324'; $arr = array( '0' => '321', '1' => '322', '2' => '323', '3' => '324', '4' => '325', '5' => '326', ); 代码 foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } print_r($arr);

PHP删除数组中空值的方法介绍

说来惭愧,以前在去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下: 复制代码 代码如下: <?php   foreach( $arr as $k=>$v){       if( !$v )           unset( $arr[$k] );   }   ?> 而且自我感觉还挺不错,只是这样的效率并不高也曾经试过,先将$arr转为对象,然后利用对象的特性来删除,因为:foreach是将当前操作的数组进行copy,每操作一下f

PHP删除数组中指定下标的元素方法

1.前面有讲数组作为堆栈和队列时的删除元素操作,即按顺序有规律的进行删除.那么,如果需要从数组的中间位置删除某个元素该如何操作呢?就需要我们今天要讲的unset()函数了. 2.unset()函数允许取消一个数组中的元素,但数组并不会重建索引,即保持原有索引,因为php中的索引具有特殊的含义. 3.示例展示: <?php $arr = array(1=>'one',2=>'two',3=>'three'); //删除下标为2的元素 unset($arr[2]); //将得到Arra

PHP从数组中删除元素的四种方法实例

茴香豆的"茴"字有四种写法,PHP从数组中删除元素也有四种方法 ^_^. 删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: <?php $array = array(0 => "a", 1 => "b", 2 => "c"); unset($array[1]); //↑ 你想删除的key ?> 输出: Array (     [0] => a     [2] =>

PHP删除数组中的特定元素的代码

比如下面的程序: 复制代码 代码如下: <?php $arr = array('apple','banana','cat','dog'); unset($arr[2]); print_r($arr); ?> 程序运行结果: 复制代码 代码如下: Array ( [0] => apple [1] => banana [3] => dog ) 但是这种方法的最大缺点是没有重建数组索引,就是说,数组的第三个元素没了. 经过查资料后,原来PHP提供了这个功能,只不过很间接.这个函数是

PHP删除数组中特定元素的两种方法

方法一: 复制代码 代码如下: <?php$arr1 = array(1,3, 5,7,8);$key = array_search(3, $arr1); if ($key !== false)    array_splice($arr1, $key, 1);var_dump($arr1);?> 输出:array(4) { [0]=> int(1) [1]=> int(5) [2]=> int(7) [3]=> int(8) } 方法二: 复制代码 代码如下: <

php删除数组指定元素实现代码

php删除数组指定元素实现代码 在PHP中删除数组指定元素的函数没有直接能使用的,多数只能封装方法 例如array_slice() 函数在数组中根据条件取出一段值,并返回. array_slice(array,offset,length,preserve) array:数组 offset: 规定取出元素的开始位置.如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值. <?php $a=array(0=>"Dog",1=>"Cat&qu

PHP根据key删除数组中指定的元素

php数组中元素的存在方式是以键值对的方式('key'=>'value'),有时候我们需要根据键删除数组中指定的某个元素. function bykey_reitem($arr, $key){ if(!array_key_exists($key, $arr)){ return $arr; } $keys = array_keys($arr); $index = array_search($key, $keys); if($index !== FALSE){ array_splice($arr,

根据key删除数组中指定的元素实现方法

php数组中元素的存在方式是以键值对的方式('key'=>'value'),有时候我们需要根据键删除数组中指定的某个元素. function bykey_reitem($arr, $key){ if(!array_key_exists($key, $arr)){ return $arr; } $keys = array_keys($arr); $index = array_search($key, $keys); if($index !== FALSE){ array_splice($arr,

基于JavaScript实现移除(删除)数组中指定元素

在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路. 代码实例如下: var array=[]; array[0]="我们一"; array[1]="我们二"; array[2]="我们三"; array[3]="我们四"; array[4]="我们五"; function re

javascript中删除指定数组中指定的元素的代码

函数如下: 复制代码 代码如下: foreach = function (obj, insp){ if(obj== null && obj.constructor != Array){ return []; } //obj是要处理的数组,obj==null 表示对象尚未存在:obj.constructor != Array 表示对象obj的属性的构造函数不是数组: //constructor属性始终指向创建当前对象的构造函数.两个条件均满足,则返回空数组[]: //下面对construct

js实现删除json中指定的元素

删除json下指定的元素 var obj = {'id':1, 'name':2}; delete obj.id; delete obj[id]; console.log(obj); // {'name':2} 删除数组中指定元素 var objArray = ['1','2','3','4']; objArray.remove('1'); console.log(objArray); // ['2','3','4'] /*定义js数组删除元素/ Array.prototype.remove =

Javscript删除数组中指定元素并返回新数组

把数组中某个值删除,并返回新数组,需要遍历旧数组找到要删除的元素 复制代码 代码如下: /* * 删除数组中指定值 */ Array.prototype.remove=function(value){ var len = this.length; for(var i=0,n=0;i<len;i++){//把出了要删除的元素赋值给新数组 if(this[i]!=value){ this[n++]=this[i]; }else{ console.log(i);//测试所用 } } this.leng

实例介绍PHP删除数组中的重复元素

array_unique()函数 array_unique()函数可以移除数组中的重复的值,并返回结果数组:当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 代码示例: <?php $result1 = array("a" => "green", "red", "b" => "green", "blue", "red"); var_du

删除PHP数组中的重复元素的实现代码

我们上一篇文章讲述了<如何删除PHP数组中头部,尾部,任意元素>,本文我们讲述通过 array_unique()函数删除数组中重复元素. array_unique()函数,将数组元素的值作为字符串排序,然后对每个值只保留第一个键名,忽略所有后面的键名,就是删除数组中重复的元素, 语法格式如下: array arry_unique(array array) 参数 array 为输入的数组. 下面实例使 array_unique()函数删除数组中重复的元素,具体示例代码如下: <?php h

php删除数组中重复元素的方法

几种php删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法. 方法一.完整删除重复数组实例-----删除数组中的一个元素 function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_valu