我有这段代码:
<!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 其它物业 阿邦 佩蒂特 盛大 大 总理 谢尔
答案 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 ";