PHP刪除數(shù)組中的特定元素的代碼
更新時(shí)間:2012年06月28日 17:35:15 作者:
我們知道,PHP沒有提供專門刪除一個(gè)特定數(shù)組元素的方法。但是可以通過unset()函數(shù)來完成這種要求
比如下面的程序:
<?php
$arr = array('apple','banana','cat','dog');
unset($arr[2]);
print_r($arr);
?>
程序運(yùn)行結(jié)果:
但是這種方法的最大缺點(diǎn)是沒有重建數(shù)組索引,就是說,數(shù)組的第三個(gè)元素沒了。
經(jīng)過查資料后,原來PHP提供了這個(gè)功能,只不過很間接。這個(gè)函數(shù)是array_splice()。
為了使用方便,我封裝成了一個(gè)函數(shù),方便大家使用:
<?php
function array_remove(&$arr, $offset)
{
array_splice($arr, $offset, 1);
}
$arr = array('apple','banana','cat','dog');
array_remove($arr, 2);
print_r($arr);
?>
經(jīng)過測(cè)試可以知道,2的位置這個(gè)元素被真正的刪除了,并且重新建立了索引。
程序運(yùn)行結(jié)果:
Array ( [0] => apple [1] => banana [2] => dog )
PHP array_splice() 函數(shù)
array_splice() 函數(shù)與 array_slice() 函數(shù)類似,選擇數(shù)組中的一系列元素,但不返回,而是刪除它們并用其它值代替。如果提供了第四個(gè)參數(shù),則之前選中的那些元素將被第四個(gè)參數(shù)指定的數(shù)組取代。
最后生成的數(shù)組將會(huì)返回。
語法:array_splice(array,offset,length,array)
array:必需。規(guī)定數(shù)組。
offset:必需。數(shù)值。如果 offset 為正,則從輸入數(shù)組中該值指定的偏移量開始移除。如果 offset 為負(fù),則從輸入數(shù)組末尾倒數(shù)該值指定的偏移量開始移除。
length:可選。數(shù)值。如果省略該參數(shù),則移除數(shù)組中從 offset 到 結(jié)尾的所有部分。如果指定了 length 并且為正值,則移除這么多元素。如果指定了 length 且為負(fù)值,則移除從 offset 到數(shù)組末尾倒數(shù) length 為止中間所有的元素。
array:被移除的元素由此數(shù)組中的元素替代。如果沒有移除任何值,則此數(shù)組中的元素將插入到指定位置。
如果函數(shù)沒有刪除任何元素 (length=0),則替代數(shù)組將從 start 參數(shù)的位置插入。
示例1:
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,0,2,$a2);
print_r($a1);
?>
//output : Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )
示例2:
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
print_r(array_splice($a1,0,2,$a2));
?>
//output : Array ( [0] => Dog [1] => Cat )
示例3:
<?php
// length 參數(shù)設(shè)置為 0
$a1=array(0=>"Dog",1=>"Cat");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,1,0,$a2);
print_r($a1);
?>
//output : Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )
復(fù)制代碼 代碼如下:
<?php
$arr = array('apple','banana','cat','dog');
unset($arr[2]);
print_r($arr);
?>
程序運(yùn)行結(jié)果:
復(fù)制代碼 代碼如下:
Array ( [0] => apple [1] => banana [3] => dog )
但是這種方法的最大缺點(diǎn)是沒有重建數(shù)組索引,就是說,數(shù)組的第三個(gè)元素沒了。
經(jīng)過查資料后,原來PHP提供了這個(gè)功能,只不過很間接。這個(gè)函數(shù)是array_splice()。
為了使用方便,我封裝成了一個(gè)函數(shù),方便大家使用:
復(fù)制代碼 代碼如下:
<?php
function array_remove(&$arr, $offset)
{
array_splice($arr, $offset, 1);
}
$arr = array('apple','banana','cat','dog');
array_remove($arr, 2);
print_r($arr);
?>
經(jīng)過測(cè)試可以知道,2的位置這個(gè)元素被真正的刪除了,并且重新建立了索引。
程序運(yùn)行結(jié)果:
復(fù)制代碼 代碼如下:
Array ( [0] => apple [1] => banana [2] => dog )
PHP array_splice() 函數(shù)
array_splice() 函數(shù)與 array_slice() 函數(shù)類似,選擇數(shù)組中的一系列元素,但不返回,而是刪除它們并用其它值代替。如果提供了第四個(gè)參數(shù),則之前選中的那些元素將被第四個(gè)參數(shù)指定的數(shù)組取代。
最后生成的數(shù)組將會(huì)返回。
語法:array_splice(array,offset,length,array)
array:必需。規(guī)定數(shù)組。
offset:必需。數(shù)值。如果 offset 為正,則從輸入數(shù)組中該值指定的偏移量開始移除。如果 offset 為負(fù),則從輸入數(shù)組末尾倒數(shù)該值指定的偏移量開始移除。
length:可選。數(shù)值。如果省略該參數(shù),則移除數(shù)組中從 offset 到 結(jié)尾的所有部分。如果指定了 length 并且為正值,則移除這么多元素。如果指定了 length 且為負(fù)值,則移除從 offset 到數(shù)組末尾倒數(shù) length 為止中間所有的元素。
array:被移除的元素由此數(shù)組中的元素替代。如果沒有移除任何值,則此數(shù)組中的元素將插入到指定位置。
如果函數(shù)沒有刪除任何元素 (length=0),則替代數(shù)組將從 start 參數(shù)的位置插入。
示例1:
復(fù)制代碼 代碼如下:
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,0,2,$a2);
print_r($a1);
?>
//output : Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )
示例2:
復(fù)制代碼 代碼如下:
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
print_r(array_splice($a1,0,2,$a2));
?>
//output : Array ( [0] => Dog [1] => Cat )
示例3:
復(fù)制代碼 代碼如下:
<?php
// length 參數(shù)設(shè)置為 0
$a1=array(0=>"Dog",1=>"Cat");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,1,0,$a2);
print_r($a1);
?>
//output : Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )
您可能感興趣的文章:
- PHP7創(chuàng)建銷毀session的實(shí)例方法
- PHP 數(shù)組和字符串互相轉(zhuǎn)換實(shí)現(xiàn)方法
- php獲取數(shù)組長度的方法(有實(shí)例)
- PHP中數(shù)組合并的兩種方法及區(qū)別介紹
- php判斷數(shù)組元素中是否存在某個(gè)字符串的方法
- 判斷PHP數(shù)組是否為空的代碼
- PHP刪除數(shù)組中空值的方法介紹
- php數(shù)組添加元素方法小結(jié)
- PHP7新特性foreach 修改示例介紹
- 簡(jiǎn)述PHP7.4 新特性和廢棄的功能
- 淺談php7的重大新特性
- php7 list()、session及其他模塊的修改實(shí)例分析
相關(guān)文章
PHP中addslashes與mysql_escape_string的區(qū)別分析
這篇文章主要介紹了PHP中addslashes與mysql_escape_string的區(qū)別,簡(jiǎn)單分析了addslashes與mysql_escape_string在使用過程中的區(qū)別,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-04-04php調(diào)用淘寶開放API實(shí)現(xiàn)根據(jù)賣家昵稱獲取賣家店鋪ID的方法
這篇文章主要介紹了php調(diào)用淘寶開放API實(shí)現(xiàn)根據(jù)賣家昵稱獲取賣家店鋪ID的方法,實(shí)例分析了php調(diào)用淘寶API查詢店鋪信息的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PHP 字符串加密函數(shù)(在指定時(shí)間內(nèi)加密還原字符串,超時(shí)無法還原)
最近, 從discuz里面發(fā)現(xiàn)了一個(gè)很牛的加密解密函數(shù)。此函數(shù)的厲害之處在于可以在指定時(shí)間內(nèi)加密還原字符串,超時(shí)無法還原.2010-04-04PHP實(shí)現(xiàn)深度優(yōu)先搜索算法(DFS,Depth First Search)詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)深度優(yōu)先搜索算法(DFS,Depth First Search),簡(jiǎn)單分析了深度優(yōu)先搜索算法的原理并結(jié)合具體實(shí)例給出了php實(shí)現(xiàn)深度優(yōu)先搜索的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09PHP構(gòu)造函數(shù)與析構(gòu)函數(shù)用法示例
這篇文章主要介紹了PHP構(gòu)造函數(shù)與析構(gòu)函數(shù)用法,簡(jiǎn)單講述php中構(gòu)造函數(shù)與析構(gòu)函數(shù)的定義與使用方法,并結(jié)合實(shí)例形式演示了構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序,需要的朋友可以參考下2016-09-09