集合 A {3,4,7} 和集合 B {2,4,7} 中有三个数字。
因为 a 和 b 中的第一个数字不相同,所以不可能得到结果。
但是我需要通过比较其他两个数字并留下第一个数字来使结果为真。
怎么可能在 PHP 中做到这一点?
集合 A {3,4,7} 和集合 B {2,4,7} 中有三个数字。
因为 a 和 b 中的第一个数字不相同,所以不可能得到结果。
但是我需要通过比较其他两个数字并留下第一个数字来使结果为真。
怎么可能在 PHP 中做到这一点?
<?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
升级版:
如果您需要从字符串中提取值,则:
$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';
应该管用。
<?
$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;
试试这个,它会对你有所帮助.. 它会显示 1 => 表示更多相同的组合,0 => 表示更多不同的组合。在下面的代码中,组合的数量越多,所以它返回 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;
?>
function compareSets($a, $b) {
$result = TRUE;
$diffArray = array_diff($a, $b);
foreach ($diffArray as $key => $value) {
if ($key > 0) {
$result = FALSE;
break;
}
}
return $result;
}
<?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 更大,则返回 true。