首頁 >後端開發 >PHP問題 >php怎麼去掉二維數組中某個欄位的值

php怎麼去掉二維數組中某個欄位的值

青灯夜游
青灯夜游原創
2022-09-28 19:34:582912瀏覽

實作步驟:1、嵌套兩個foreach來遍歷二維數組內外層的鍵名和鍵值,語法「foreach($arr as $k1=>$v2){foreach($v1 as $k2=>$v2){//循環體語句塊}}”;2、在循環體中,用“===”找到指定字段名元素,用unset()根據對應鍵名刪除該元素,語法「if($k==="指定欄位名稱"){unset($arr[$k1][$k2]);}」。

php怎麼去掉二維數組中某個欄位的值

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

在php中,可以利用foreach語句和unset ()函數來去掉二維數組中某個字段的值。

實作步驟:

步驟1:巢狀兩個foreach語句來遍歷二維陣列內外層的鍵名與鍵值

foreach ($array as $key => $value){
    foreach ($value as $k => $v){
        //内层循环体语句块;
    }
}
  • 外層第一個foreach語句:遍歷給定的 $array 數組的外層,每次迴圈中都會將目前陣列的值賦給 $ value,鍵名賦給 $key。

  • 內層第二個foreach語句:遍歷$value子數組,在每次迴圈中會將目前陣列的值賦給 $v,鍵名賦給 $k。

步驟2:在循環體中,利用「===」找到指定欄位名稱元素,使用unset()函數根據對應鍵名刪除該元素

if($k==="指定字段名"){
   	unset($arr[$key][$k]);
}

實作程式碼:

function f($arr,$s){
	foreach ($arr as $key => $value){
	    foreach ($value as $k => $v){
			if($k===$s){
			   	unset($arr[$key][$k]);
			}
	    }
	}
	echo "删除后的二维数组:";
	var_dump($arr);
}

呼叫f($arr)處理下面函數,刪除name欄位或score欄位

$arr=array(
  array(
    'name' => "小明",
    'score' => 85,
  ),
  array(
    'name' => "小华",
    'score' => 92,
  ),
  array(
    'name' => "霄晓",
    'score' => 100,
  ),
  array(
    'name' => "萧洁",
    'score' => 99,
  ),
  array(
    'name' => "赵峰",
    'score' => 96,
  )
);
var_dump($arr);
f($arr,"name");

php怎麼去掉二維數組中某個欄位的值

#
f($arr,"score");

php怎麼去掉二維數組中某個欄位的值

說明:foreach語句

foreach是專門為遍歷陣列而設計的語句,是遍歷數組時常用的方法,在遍歷數組方面提供了很大的便利;PHP5後還可以遍歷物件(foreach僅能夠應用於數組和物件)。

foreach語句遍歷數組與數組下標無關,且可以用於不連續的索引數組和以字串為下標的關聯數組。

foreach語句有兩種語法格式:

語法格式1:

foreach ($array as $value){
    语句块;
}
  • 遍歷給定的 $array 數組,在每個循環中將目前數組的值賦給 $value。

語法格式2:

foreach ($array as $key => $value){
    语句块;
}
  • 會遍歷給定的 $array 數組,每次循環中都會將目前數組的值賦給$value,鍵名賦給 $key。

foreach語句在每次迴圈時,陣列內部的指標會向前移一步,這樣在下一次迴圈中會得到下一個陣列元素,直到遍歷到陣列的結尾,停止遍歷並退出循環。

推薦學習:《PHP影片教學

以上是php怎麼去掉二維數組中某個欄位的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn