集合A {3,4,7}和集合B {2,4,7}中有三个数字。
由于a和b中的第一个数字不相同,因此无法得到结果。
但我需要通过比较其他两个数字并保留第一个数字来使结果为真。
如何在PHP中完成它?
答案 0 :(得分:1)
<?php
$a = array(3,4,7);
$b = array(2,4,7);
echo $a === $b ? 'TRUE' : 'FALSE';
echo PHP_EOL;
array_shift($a);
array_shift($b);
echo $a === $b ? 'TRUE' : 'FALSE';
?>
节目:
FALSE TRUE
<强> UPD:强>
如果您需要从字符串中提取值,那么:
$strA = '3,4,7';
$strB = '2,4,7';
$a = explode(',', $strA);
$b = explode(',', $strB);
array_shift($a);
array_shift($b);
echo $a === $b ? 'TRUE' : 'FALSE';
应该工作。
答案 1 :(得分:1)
<?
$A = array(2,3,7);
$B = array(4,3,7);
$isTrue=1;
for($i=1; $i < count($A); $i++) if($A[$i]!=$B[$i]) $isTrue=0;
echo $isTrue;
?>
修改强>
如果要在两个元素完全相同的情况下返回true,则代码为:
$common=0;
for($i=0; $i < count($a); $i++) if($a[$i]==$b[$i]) $common++;
if($common==2) $isTrue=1;
答案 2 :(得分:1)
试试这会对你有帮助..它会显示1 =&gt;对于更多数量的组合,并且0 =&gt;更多的组合作为不同。在下面的代码中,组合的数量越多,因此它的返回值为0。
<?php
$A = array(2,3,7,5,6);
$B = array(4,3,7,8,9);
$flagTrue = 0;
$flagFalse = 0;
for($i=0; $i < count($A); $i++)
{
if($A[$i] == $B[$i])
{
$flagTrue=$flagTrue+1;
}
else
{
$flagFalse=$flagFalse+1;
}
}
$var_is_greater_than_two = ($flagTrue >= $flagFalse) ? 1 : 0;
echo $var_is_greater_than_two;
?>
答案 3 :(得分:0)
function compareSets($a, $b) {
$result = TRUE;
$diffArray = array_diff($a, $b);
foreach ($diffArray as $key => $value) {
if ($key > 0) {
$result = FALSE;
break;
}
}
return $result;
}
答案 4 :(得分:-1)
<?php
$a = array(3,4,7);
$b = array(2,4,7);
for($i=0;$i<3;$i++)
{
if($a[$i] > $b[$i]
echo true;
}
?>
如果a更大,将给出真实。