去除步骤:1、循环遍历二维数组的外层数组元素,语法“foreach($arr as $k=>$v){循环体代码}”;2、在循环体中,用unset()去除指定值,语法“if(is_array($v)){$ck=array_search(值,$v);if($ck){unset($arr[$k][$ck]);}}else{if($v===值){unset($arr[$k]);}}”。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

在php中,可以利用foreach语句并结合unset()函数来删除二维数组中的某个指定值。

实现步骤:

步骤1:使用foreach语句循环遍历二维数组的外层数组元素

foreach ($arr as $k => $v){
//循环体代码
}

遍历给定的 $arr 数组,在每次循环中会将当前数组的值赋给 $v,键名赋给 $k。

步骤2:在循环体中,去除二维数组中的指定值

使用is_array()函数判断外层元素是否为数组类型(是否为子数组)

  • 如果是则使用array_search()获取指定值对应的键名,再根据键名使用unset()函数删除该元素

  • 如果不是,则直接利用“===”判断当前元素是否为指定元素,如果是用unset()函数删除该元素。

if (is_array($v)) {
	$ck = array_search(指定值, $v);
	if ($ck) {
		unset($arr[$k][$ck]);
	}
} else {
	if ($v === 指定值) {
		unset($arr[$k]);
	}
}

完整实现代码:去除二维数组中的1

<?php
header("content-type:text/html;charset=utf-8");
$arr = array(1, 2, 3, array(4, 1, 6), array(7, 8, 9, 10));
echo "原数组:";
var_dump($arr);
foreach ($arr as $k => $v) {
	if (is_array($v)) {
		$ck = array_search(1, $v);
		if ($ck) {
			unset($arr[$k][$ck]);
		}
	} else {
		if ($v === 1) {
			unset($arr[$k]);
		}
	}
}
echo "去除元素1后:";
var_dump($arr);
?>

1.png


php怎么去除二维数组中的某个值