判断步骤:1、使用foreach语句循环遍历二维数组的外层数组元素,语法““foreach($arr as $v){//循环体代码}””;2、在循环体中,利用“if(is_array($v)){if(array_search(元素值,$v)){//指定元素在二维数组中}}else{if($v===元素值){//指定元素在二维数组中}}”语句判断指定元素是否在二维数组中。

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

php判断元素是否在二维数组中的方法

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

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

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

步骤2、在循环体中,判断元素是否在二维数组中

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

  • 如果是则利用array_search()判断指定元素是否在子数组中

  • 如何不是则利用“===”判断当前元素是否为指定元素即可

if(is_array($v)){
	if(array_search(7,$v)){
		echo "指定元素在二维数组中";
		break;
	}
}else{
	if($v===7){
		echo "指定元素在二维数组中";
		break;
	}
}

完整实现代码:

<?php
header("content-type:text/html;charset=utf-8");
$arr = array(1,2,3,array(4,5,6),7,8,array(9,10)); 
var_dump($arr);
foreach($arr as $v){
if(is_array($v)){
	if(array_search(7,$v)){
		echo "指定元素在二维数组中";
		break;
	}
}else{
	if($v===7){
		echo "指定元素在二维数组中";
		break;
	}
}
}

?>

1.png

改良一下:

<?php
header("content-type:text/html;charset=utf-8");
function f($val,$arr) {
	$con = 0;
	foreach ($arr as $v) {
		if (is_array($v)) {
			if (array_search($val, $v)) {
				$con = 1;
				break;
			}
		} else {
			if ($v === $val) {
				$con = 1;
				break;
			}
		}
	}
	if ($con == 1) {
		echo "指定元素 $val 在二维数组中<br>";
	} else {
		echo "指定元素 $val 不在二维数组中<br>";
	}
}
$arr = array(1, 2, 3, array(4, 5, 6), 7, 8, array(9, 10));
var_dump($arr);
f("h",$arr);
f(7,$arr);
?>

2.png


php怎么判断元素是否在二维数组中