-1

集合 A {3,4,7} 和集合 B {2,4,7} 中有三个数字。

因为 a 和 b 中的第一个数字不相同,所以不可能得到结果。

但是我需要通过比较其他两个数字并留下第一个数字来使结果为真。

怎么可能在 PHP 中做到这一点?

4

5 回答 5

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

升级版:

如果您需要从字符串中提取值,则:

$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';

应该管用。

于 2013-04-12T11:14:21.850 回答
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;
于 2013-04-12T11:17:29.257 回答
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;
?>
于 2013-04-12T12:01:41.300 回答
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;
} 
于 2013-04-12T11:35:59.977 回答
-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 更大,则返回 true。

于 2013-04-12T11:17:54.193 回答