PHP如何获取数组中是否存在某个值还有是否相同

$arr1=Array([0]=>Array([id]=>2[num]=>41[display]=>1)[1]=>Array([id]=>3[num]=>41[displ... $arr1=Array ( [0] => Array ( [id] => 2 [num] => 41 [display] => 1 ) [1] => Array ( [id] => 3 [num] => 41 [display] => 0 ) [2] => Array ( [id] => 4 [num] => 43 [display] => 1 ) [3] => Array ( [id] => 5 [num] => 43 [display] => 1 ) )

如何判断数组中 所有num的值是否相同 还有如何检测所有display里面是否有0的存在
展开
 我来答
冰菓冰菓
2017-02-20 · TA获得超过496个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:232万
展开全部

您好,很高兴为你作答。

问题是有2个,按照规范化程序的设计原则,可以编写2个函数。由于这是一个二维数组,因为我们需要用到遍历和数组访问的知识。

针对第一个问题,判断所有的num值是否相同,也就是要一个结果:true or false。true代表是全部相同的,而false则反之。所以我们可以写出这样一个函数:

 /**
    *  检测数组的num值是否全部相等
    *@param $arr mixed 待检测的数组
    *@return bool true or false
    */
    function NumIsEqual($arr){
        $length = count($arr);
        $compare = 0;
        for ($i=0; $i < $length; $i++) { 
            if($compare == 0){
                $compare = $arr[$i]['Num'];
            }

            if($compare != $arr[$i]['num']){
                return false;
            }
        }
        return true;
    }

对于第二个问题,检测所有的display是否有0存在,同第一个问题一样,也是相同的处理方式,只不过判断逻辑稍有不同。大致如下:

 /**
    *  检测数组的display是否有0存在
    *@param $arr mixed 待检测的数组
    *@return bool true or false
    */
    function NumIsEqual($arr){
        $length = count($arr);      
        for ($i=0; $i < $length; $i++) { 

            if($arr[$i]['display'] == 0){
                return true;
            }
        }
        return false;
    }
追问
似乎不对,第一个问题我用你的代码实验了下,无论num是否相同结果都是true
第二个我还没有测试,再帮我看看吧 辛苦了
追答
(1)第一个函数的Num改为小写的;

(2)第二个函数的名字随便改一下,我为了徒方便没有改,要注意改为其他的。
山东文汇
2017-02-20 · 我们年轻我们有活力、我们执着我们有耐心。
山东文汇
专业的软件开发服务商,网站开发、APP开发、微信小程序、商城小程序、知识付费产品。
向TA提问
展开全部
foreach($arr1 as $r ){
if($r['display']==0)
{
echo "有0";
}
i=$r['num'];

}
foreach($arr1 as $r ){
if($r['num']!=i)
{
echo "所有num不相等";
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式