> php教程 > PHP源码 > php判断多维数组是否存在某个值

php判断多维数组是否存在某个值

WBOY
풀어 주다: 2016-06-08 17:23:20
원래의
1218명이 탐색했습니다.

今天我们给大家介绍如何判断数组中存在我们要找的元素值哦,这里介绍如果是一维数据就直接in_array但多维数据复杂一点。

<script>ec(2);</script>

我们先来解一下in_array检查数组中是否存在某个值

 代码如下 复制代码

$os = array("Mac", "NT", "Irix", "Linux");

echo “(1)”;
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {//in_array() 是区分大小写的
    echo "Got mac";
}

 

$a = array('1.10', 12.4, 1.13);
echo "(2)";

if (in_array('12.4', $a, true)) {//in_array() 严格类型检查
    echo "'12.4' found with strict checkn";
}
if (in_array(1.13, $a, true)) {
    echo "1.13 found with strict checkn";
}
 

 

$a = array(array('p', 'h'), array('p', 'r'), 'o');
echo "(3)";

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' was foundn";

}

if (in_array(array('f', 'i'), $a)) {//in_array() 中用数组作为 needle
    echo "'fi' was foundn";
}
if (in_array('o', $a)) {
    echo "'o' was foundn";
}
?>

 

程序运行结果是:

(1)Got Irix

(2)1.13 found with strict check

(3)'ph' was found    'o' was found


上面都是一维数组了很简单,下面来看多维数据是否存在某个值

 代码如下 复制代码

$arr = array(
   array('a', 'b'),
   array('c', 'd')
);
 
in_array('a', $arr); // 此时返回的永远都是 false
deep_in_array('a', $arr); // 此时返回 true 值
 
function deep_in_array($value, $array) { 
    foreach($array as $item) { 
        if(!is_array($item)) { 
            if ($item == $value) {
                return true;
            } else {
                continue; 
            }
        } 
         
        if(in_array($value, $item)) {
            return true;    
        } else if(deep_in_array($value, $item)) {
            return true;    
        }
    } 
    return false; 
}

 


该方法是在php帮助手册in_array方法详解页面下的评论看到的,平时没事多看看帮助手册,特别是后面的经典评论,里面收集了不少人的经典方法啊。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿