php怎麼去掉二維陣列中某個欄位的值

2022-09-28 22:00:40

實現步驟:1、巢狀兩個foreach來遍歷二維陣列內外層的鍵名和鍵值,語法「foreach($arr as $k1=>$v2){foreach($v1 as $k2=>$v2){//迴圈體語句塊}}」;2、在迴圈體中,用「===」找到指定欄位名元素,用unset()根據對應鍵名刪除該元素,語法「if($k==="指定欄位名"){unset($arr[$k1][$k2]);}」。

php入門到就業線上直播課:進入學習
API 檔案、設計、偵錯、自動化測試一體化共同作業工具:

本教學操作環境: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");
登入後複製

1.png

f($arr,"score");
登入後複製

2.png

說明:foreach語句

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

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

foreach語句有兩種語法格式:

語法格式1:

foreach ($array as $value){
    語句塊;
}
登入後複製
  • 遍歷給定的 $array 陣列,在每次迴圈中將當前陣列的值賦給 $value。

語法格式2:

foreach ($array as $key => $value){
    語句塊;
}
登入後複製
  • 遍歷給定的 $array 陣列,在每次迴圈中會將當前陣列的值賦給 $value,鍵名賦給 $key。

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

推薦學習:《》

以上就是php怎麼去掉二維陣列中某個欄位的值的詳細內容,更多請關注TW511.COM其它相關文章!