php數組刪除元素各種方法總結

來源:互聯網
上載者:User

刪除數組指定元素

 代碼如下 複製代碼

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2));
?>

輸出

Array ( [0] => Cat [1] => Horse )


幾個函數用下來覺得array_search()比較實用

array_search() 函數與 in_array() 一樣,在數組中尋找一個索引值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false

 代碼如下 複製代碼


$array = array('1', '2', '3', '4', '5');

$del_value = 3;
unset($array[array_search($del_value , $array)]);//利用unset刪除這個元素

print_r($array);

輸出

array('1', '2', '4', '5');


從數組頭刪除值

array_shift()函數刪除並返回數組中找到的元素。其結果是,如果使用的是數值健,則所有相應的值都會下移,而使用關聯鍵的數組不受影響。其形式為:


mixed array_shift(array array)

下面的例子刪除了$fruits數組中的第一個元素apple:

 代碼如下 複製代碼

$fruits = array("apple","banana","orange","pear");
$fruit = array_shift($fruits);
// $fruits = array("banana","orange","pear")
// $fruit = "apple";

從數組尾刪除元素
array_pop()函數刪除並返回數組的最後一個元素。其形式為:


mixed array_pop(aray target_array);

下面的例子從$states數組刪除了最後的一個州:

 代碼如下 複製代碼

$fruits = array("apple","banana","orange","pear");
$fruit = array_pop($fruits);
//$fruits = array("apple","banana","orange");
//$fruit = "pear";


刪除數組中間的元素

 代碼如下 複製代碼

function deleteElementFromArr($arr, $index){
if($index < count($arr)-1){
unset($arr[$index]);
reset($arr);
}
return $arr;
}

我封裝成了一個函數,方便大家使用:

 代碼如下 複製代碼


<?php

function array_remove(&$arr, $offset)
{
array_splice($arr, $offset, 1);
}

$arr = array('apple','banana','cat','dog');

array_remove($arr, 2);
print_r($arr);
?>

刪除數組重複元素

 代碼如下 複製代碼


<?php
function assoc_unique($arr, $key) {
$tmp_arr = array();
foreach($arr as $k => $v) {
if(in_array($v[$key], $tmp_arr)) {
unset($arr[$k]);
} else {
$tmp_arr[] = $v[$key];
}
}
sort($arr);
return $arr;
}

$aa = array(
array('id' => 123, 'name' => '張三'),
array('id' => 123, 'name' => '李四'),
array('id' => 124, 'name' => '王五'),
array('id' => 125, 'name' => '趙六'),
array('id' => 126, 'name' => '趙六')
);
$key = 'name';
assoc_unique(&$aa, $key);
print_r($aa);
?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.