检查数组是否与textarea的输入相同

时间:2014-10-29 20:14:24

标签: php

我有这段代码:

    <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Frans</title>
</head>
<body>
    <form method="POST">
<textarea name="textarea" cols="16" rows="4" wrap="OFF"/>
</textarea><input type="submit" name="submit" value="submit">
</form><pre><?php
if(isset($_POST['submit'])){
if(!empty($_POST['textarea'])) {

  $exp = array_filter(explode("\n", $_POST['textarea']));

  print_r($exp);

  // Add DB Insert here
} 
$correct = array(
'Beau',
'Haut',
'Jeune',
'Gros',
'Nouveau',
'Bon',
'Long',
'Vieux',
'Mauvais',
'Autre',
'Joli',
'Petit',
'Grand',
'Large',
'Premier',
'Cher',
);

$input = $_POST['textarea'];

echo ($correct == $input) ? 'they\'re same' : 'they\'re different';
print_r($correct);
}   
?>

</body>
</html>

我基本上想检查数组是否与textarea的输入相同。这是输入应该是:

  

谢尔   花花公子   浩特   热恩   格罗斯   风格   盂兰盆   长   老   MAUVAIS   其它物业   阿邦   佩蒂特   盛大   大   总理

输出应该是:它们是相同的。 但我做错了,因为它一直说:“他们是不同的” 提前谢谢。

输入错误,请原谅。 编辑:

  

博   浩特   热恩   格罗斯   风格   盂兰盆   长   老   MAUVAIS   其它物业   阿邦   佩蒂特   盛大   大   总理   谢尔

3 个答案:

答案 0 :(得分:1)

您的阵列具有不同的内部排序,这意味着它们是不同的。如果两个数组具有相同数量的元素(按相同顺序)具有相同的值,则它们将仅测试相等:

php > $x = array('a', 'b');
php > $y = array('b', 'a');
php > $z = array('a', 'b');

php > var_dump($x == $y);
bool(false)

php > var_dump($x == $z);
bool(true)

尝试同时运行sort(),以便(理论上),它们的顺序相同。

答案 1 :(得分:0)

使用in_array - http://php.net/manual/en/function.in-array.php

遍历你的阵列;

$exp = explode("/n", $_POST['textarea']);

for ($i = 0; $i < count($exp); $i++)
{
  if (in_array($exp[$i], $correct)) 
  {
    $output = "They're the same";
  }
  else
  {
    $output = "They're different";
    break;
  }
}

echo $output;

答案 2 :(得分:0)

if (count ($array1) == count ($array2)  )  //have same size
{


$identical = 1;  //we assume both are identical and some item is different will become 0

for ($i=0; $i <count ($array1) ; i++ )
{

if ($array1[$i] != $array2[$i] )
   $identical = 0;

}

if ($identical == 1 )
  echo "arra1 is identical with array2 ,all items is same order";
else 
  echo "arra1 is different form  array2 ";

}
else
  echo "arra1 is diffeent form  array2 ";