如何在php中比较三个数字时找到最高组合

时间:2013-04-12 11:09:47

标签: php

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

由于a和b中的第一个数字不相同,因此无法得到结果。

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

如何在PHP中完成它?

5 个答案:

答案 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更大,

将给出真实。