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的存在 展开
如何判断数组中 所有num的值是否相同 还有如何检测所有display里面是否有0的存在 展开
2个回答
展开全部
您好,很高兴为你作答。
问题是有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)第二个函数的名字随便改一下,我为了徒方便没有改,要注意改为其他的。
展开全部
foreach($arr1 as $r ){
if($r['display']==0)
{
echo "有0";
}
i=$r['num'];
}
foreach($arr1 as $r ){
if($r['num']!=i)
{
echo "所有num不相等";
}
}
if($r['display']==0)
{
echo "有0";
}
i=$r['num'];
}
foreach($arr1 as $r ){
if($r['num']!=i)
{
echo "所有num不相等";
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询