php 刪除一維陣列中某乙個值元素的操作方法

2022-05-04 11:18:06 字數 3387 閱讀 1112

1. 自己寫for迴圈

從array裡去掉$tmp這個元素的值?1

2345

6789

10<?php

$tmp='324';

$arr=array(

'0' => '321',

'1' => '322',

'2' => '323',

'3' => '324',

'4' => '325',

'5' => '326',

);

**?1

2345

foreach( $arr as $k=>$v)

print_r($arr);

?>

此時?1

2345

678array

(

[0] => 321

[1] => 322

[2] => 323

[4] => 325

[5] => 326

)

要重置索引,加上一句?1

2345

6foreach( $arr as $k=>$v)

$arr = array_values($arr);

print_r($arr);

?>

此時結果?1

2345

678array

(

[0] => 321

[1] => 322

[2] => 323

[3] => 325

[4] => 326

)

array_merge()也可以實現同樣的效果?1

2345

6foreach( $arr as $k=>$v)

$arr = array_merge($arr);

print_r($arr);

?>

此時結果?1

2345

678array

(

[0] => 321

[1] => 322

[2] => 323

[3] => 325

[4] => 326

)

2.優先使用php自帶函式,因為那是用c實現的,比自己寫效率高。

使用array_search和array_splice,這裡array_splice自動實現重置序列值。?1

23$key=array_search($tmp ,$arr);

array_splice($arr,$key,1);

var_dump($arr);

此時結果?1

2345

678array

(

[0] => 321

[1] => 322

[2] => 323

[3] => 325

[4] => 326

)

最佳實踐?1

2$arr = array_merge(array_diff($arr, array($tmp)));

var_dump($arr);

結果?1

2345

678array

(

[0] => 321

[1] => 322

[2] => 323

[3] => 325

[4] => 326

)

這裡,如果陣列元素是複雜資料結構,同樣能夠實現比較。當然資料本身仍然是一維的。

上面的例子中$tmp是乙個值,如果$tmp是乙個陣列或者其他複雜資料結構,從$array中刪除所有$tmp包含的元素,上面的方法同樣有效?1

2$arr = array_merge(array_diff($arr, $tmp));

var_dump($arr);

**:

新增某乙個圓角,和某乙個邊框

為所有uiview的繼承類,切割圓角,新增任意邊框 因為這兩個功能未必要同時使用,所以是分開的兩個檔案 圓角 需要 import uiview gfcorner.h 使用 如下 img cornerwithradius 10 direction cornerdirectiontypebottom c...

查詢list容器中的某乙個值

include include include include using namespace std 編寫乙個strig 型別的list,在該容器中尋找乙個特殊值,如果找到則刪除 void print list iterator beg,list iterator end cout listili...

使用git合併某乙個版本的某乙個分支

使用命名 使用場景 我們有個穩定版本的分支,叫v2.0,另外還有個開發版本的分支v3.0,我們不能直接把兩個分支合併,這樣會導致穩定版本混亂,但是又想增加乙個v3.0中的功能到v2.0中,這裡就可以使用cherry pick了,其實也就是對已經存在的commit 進行再次提交.使用說明 git ch...