1. 程式人生 > >PHP刪除Array數組裡指定的key(完整版,已封裝成函式,附測試程式碼)

PHP刪除Array數組裡指定的key(完整版,已封裝成函式,附測試程式碼)

問題背景:array裡一般是key---value的儲存方式,我們有時候需要刪除指定的key及對應的value。但是不知道為啥,那麼多帖子都是在講知道value,並刪除該value的事情,差點誤導我。

現將我寫的完整版程式碼附下:

function array_remove($data, $key){
    if(!array_key_exists($key, $data)){
        return $data;
    }
    $keys = array_keys($data);
    $index = array_search($key, $keys);
    if($index !== FALSE){
        array_splice($data, $index, 1);
    }
    return $data;

}
$data = array('name'=>'apple','age'=>12,'address'=>'ChinaGuangZhou');
$result = array_remove($data, 'name');
var_dump($result);

補充說明:

1,其實問題出在array_search這個函式上,這個函式按照value去搜索,得到位置,如果找不到就返回NULL或false;

2,因此,在按key進行查詢key對應的位置時,需要在$keys裡去找,這就是呼叫array_keys的原因

3,因為array_search這個函式可能返回NULL和false,所以得按絕對比較,使用!==

參考:

歡迎大家加入PHP CodeIgniter社群群:460132647    備註:yanzi

相關推薦

PHP刪除Array指定key整版封裝函式測試程式碼

問題背景:array裡一般是key---value的儲存方式,我們有時候需要刪除指定的key及對應的value。但是不知道為啥,那麼多帖子都是在講知道value,並刪除該value的事情,差點誤導我。現將我寫的完整版程式碼附下:function array_remove($d

[黑馬PHP教程]C. 的遍歷必記

ant data span lis borde alt 使用 指針 font 一,利用foreach遍歷數組二,數組的指針操作與遍歷原理 三,數組遍歷流程原理 四,利用 for循環 和 next 遍歷數組 五,利用 while循環+ each()+ list()

字符串函---atof()函具體解釋及實現整版

記錄 == include als 技術 整數 ast fill 跳過 atof()函數 atof():double atof(const char *str ); 功 能: 把字符串轉換成浮點數 str:要轉換的字符串。 返回值:每一個函數返回 double 值。此值

php 多維 array sort 排序 :array_multisort

color mode .com list param pub cor yum tis 1.參考鏈接:   php簡單實現多維數組排序的方法   參考二: 這個鏈接很好,可以直接看這個:PHP array_multisort—對多個數組或多維數組進行排序 2.案例

PHP如何得到最後元素的key

blank each 得到 true Language key clas targe get 1.array_keys(end($arr)) $array = array( ‘one‘=>1, ‘two‘=>2, ‘three‘=>3, ‘f

刪除指定的某個元素

con var 指定 數組 == pos clas mov ole /** * 刪除數組中指定的某個元素 */ function removeByValue(arr, val) { for(var i=0; i<arr.length; i++) {

JS刪除的某個元素方法

刪除陣列指定的某個元素 首先可以給JS的陣列物件定義一個函式,用於查詢指定的元素在陣列中的位置,即索引,程式碼為: ? 1 2 3 4 5 6 Array.prototype.indexOf = function(val) { for (var

mongodb java 刪除的某一個數據

最近專案裡有一個需求要刪除mongodb 數組裡的某一個數據,就面向百度程式設計了 mongo的命令找到了 下面具體講下如何刪除 刪除mongo簡單陣列的陣列 例子如下 例1 簡單陣列 { "_id" : ObjectId("5b921e02d833f81e08fb

js刪除的某個元素

原文連結:http://caibaojian.com/js-splice-element.html刪除陣列指定的某個元素首先可以給js的陣列物件定義一個函式,用於查詢指定的元素在陣列中的位置,即索引,程式碼為:Array.prototype.indexOf = functio

修改指定元素的內容

System.out.println("請輸入你要修改的好友賬號");String a1111 = input.next();boolean A = false;if(好友!=null){for(int i = 0;i<好友.length;i++){if(好友[i]!

PHP獲取一維的最大值和最小值

php獲取一維數組裡的最大值和最小值的方法。 php獲取一維數組裡面的最大值: <?php $a=array('1','3','55','99'); echo max($a); php獲

PHP實現多維指定值排序

har get 二維數組 rtb app tis UNC bsp function 主要用到的PHP函數 array_multisort() 1.先實現指定多維數組一個字段排序 根據二維數組的id值來排序,轉換後的數組格式如下: function

php 獲取深度的key

each val fun brush 遍歷 UNC true sharp amp 1、數組 深度遍歷 function fun($a,&$b) { foreach ($a as $k=>$val) { if (is_array

PHP二維排序

sta return style code bsp val array desc con //二維數組排序 function arrSort($data , $sort){ // $sort = array( // ‘direction‘ =>

array的創建

創建動態數組一、常見的兩種數組創建方式:1、創建時只指定數組長度,不指定數組元素,需要時按索引添加數組元素.如下:int[] i = new int[10]; i[0] = 1;2、創建時即指定數組元素。int[] j = new int{1,2,3,4,5,6}二、對於創建數組,建議的做法是,先聲明,不指定

PHP中的

a-z 遍歷 eve break 通過 off 字面量 鍵值對 ole 一、數組的基礎 php數組的分類 按照下標的不同,php分為關聯數組與索引數組:  索引數組:下標從零依次增長(以前那種)  關聯數組:下標為字符串格式,每個下標字符串與數組的值一一關聯對應(有點兒像對

PHP使用實現隊列實際就是先進先出怎樣實現

建設 堆棧 spa pop copy popu 第一個元素 復制代碼 ng- PHP的數組處理函數還能夠將數組實現隊列,堆棧是“先進後出”。在堆棧中,最後壓入的數據(進棧),將會被最先彈出(出棧)。而隊列是先進先出。就如同銀行的排號機 PHP中將數組當做一

JavaSE7基礎 找到一維指定數值(第一次出現)的索引值 do-while循環實現

學習資源 public 不可用 oid 索引 ati 精華 args 運行 版本參數:jdk-7u72-windows-i586註意事項:博文內容僅供參考,不可用於其他用途。 代碼 class Demo{ public static void main(Stri

js Array對象常見方法總結

apply join() type 方法 創建 數字 result right fin Array對象一般用來存儲數據。 其常用的方法包括: 1、concatc()方法 concat() 方法用於合並兩個或多個數組。它不會更改現有數組,而是返回一個新數組。 例如: v

php創建的幾種方法

如果 ron 自動 php 字符 數字 coder 所有 hellip 第1種格式 $數組名稱 = array(‘值’, ‘值’, ‘值’,……); 此種格式沒有指定數組