實作步驟:1、嵌套兩個foreach來遍歷二維數組內外層的鍵名和鍵值,語法「foreach($arr as $k1=>$v2){foreach($v1 as $k2=>$v2){//循環體語句塊}}”;2、在循環體中,用“===”找到指定字段名元素,用unset()根據對應鍵名刪除該元素,語法「if($k==="指定欄位名稱"){unset($arr[$k1][$k2]);}」。
本教學操作環境: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");
f($arr,"score");
說明: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中文網其他相關文章!