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有序數組刪除內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: