PHP在_数组中无法正常工作

PHP在_数组中无法正常工作,php,mysql,Php,Mysql,我有一个mysql\u查询从'english'列表数据库中select*,然后mysql\u fetch\u assoc返回一个数组。我尝试通过在数组()中使用来搜索单词'flick'(它实际上存在于数据库中)。如果找到'flick',则不应显示它,但会显示它。我认为在_array函数中找不到单词'flick'。请看下面的代码: <?php error_reporting(E_ALL); require 'db.php'; function spellcheck($word) { $ou

我有一个
mysql\u查询
'english'
列表数据库中
select*
,然后
mysql\u fetch\u assoc
返回一个数组。我尝试通过在数组()中使用
来搜索单词
'flick'
(它实际上存在于数据库中)。如果找到
'flick'
,则不应显示它,但会显示它。我认为
在_array
函数中找不到单词
'flick'
。请看下面的代码:

<?php
error_reporting(E_ALL);
require 'db.php';

function spellcheck($word)
{
$output = array();
$word   = mysql_real_escape_string($word);

$words  = mysql_query("SELECT `word` FROM `english` WHERE LEFT(`word`, 1) = '" .
 substr($word, 0, 1) . "'");

 while(($words_row = mysql_fetch_assoc($words)) && (in_array($word, $words_row)==false))
  {
    similar_text($word, $words_row['word'], $percent);
    if($percent > 82)
    {
      $output[] = $words_row['word'];
    }
  }

  return (empty($output)) ? false : $output;
}

  if (isset($_GET['word']) && trim($_GET['word']) != null)
  {
    $word = $_GET['word'];
    $spellcheck = spellcheck($word);

    if ($spellcheck !== false)
    {
      echo '<pre>' . print_r($spellcheck, true) . '</pre>'; 
    } else {
      echo '<p>' . $word . ' spelled correctly, or no suggestions founds.</p>';
    }
  }
?>
<form action="" method="GET">
Check single word spelling:
<input type="text" name="word" />
<input type="submit" value="Check" /> 
</form>
但它应该是:

 while(($words_row = mysql_fetch_assoc($words)) && (in_array($word, $words_row)==false))
更换这条线

 while(($words_row = mysql_fetch_assoc($words))) {
    if((in_array($word, $words_row)==false)) {

并在底部关闭if语句

替换此行

 while(($words_row = mysql_fetch_assoc($words))) {
    if((in_array($word, $words_row)==false)) {

并在底部关闭if语句

替换此行

 while(($words_row = mysql_fetch_assoc($words))) {
    if((in_array($word, $words_row)==false)) {

并在底部关闭if语句

替换此行

 while(($words_row = mysql_fetch_assoc($words))) {
    if((in_array($word, $words_row)==false)) {


在底部结束if语句

经过两天的研究,我找到了答案。 错误出现在mysql\u fetch\u assoc
的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。 因此,结果不像
abcdefg
。结果类似于
abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,
in_array()
函数返回false。因为例如,单词
'flick'
不等于
'flick'
,并且数组中的键后面有一个空格。我使用了
trim()
函数并解决了我的问题:


谢谢你注意我的回答

经过两天的研究,我找到了答案。 错误出现在mysql\u fetch\u assoc的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。 因此,结果不像
abcdefg
。结果类似于
abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,
in_array()
函数返回false。因为例如,单词
'flick'
不等于
'flick'
,并且数组中的键后面有一个空格。我使用了
trim()
函数并解决了我的问题:


谢谢你注意我的回答

经过两天的研究,我找到了答案。 错误出现在mysql\u fetch\u assoc的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。 因此,结果不像
abcdefg
。结果类似于
abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,
in_array()
函数返回false。因为例如,单词
'flick'
不等于
'flick'
,并且数组中的键后面有一个空格。我使用了
trim()
函数并解决了我的问题:


谢谢你注意我的回答

经过两天的研究,我找到了答案。 错误出现在mysql\u fetch\u assoc的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。 因此,结果不像
abcdefg
。结果类似于
abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,
in_array()
函数返回false。因为例如,单词
'flick'
不等于
'flick'
,并且数组中的键后面有一个空格。我使用了
trim()
函数并解决了我的问题:



谢谢你注意我的回答

不要再使用
mysql.*
函数了。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为
mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了
mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中,mysl和mysqli之间没有区别。@Majid区别在于
mysqli
将在将来工作,
mysql\u query
已经在PHP5.5中产生了大量警告。不要再使用
mysql\u*
函数。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为
mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了
mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中,mysl和mysqli之间没有区别。@Majid区别在于
mysqli
将在将来工作,
mysql\u query
已经在PHP5.5中产生了大量警告。不要再使用
mysql\u*
函数。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为
mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了
mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中,mysl和mysqli之间没有区别。@Majid区别在于
mysqli
将在将来工作,
mysql\u query
已经在PHP5.5中产生了大量警告。不要再使用
mysql\u*
函数。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为
mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了
mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中mysl和mysqli之间没有区别。@Majid区别在于
mysqli
将在将来工作,
mysql\u query
已经在PHP5.5中产生了大量警告。感谢您的回答。但我以前试过,但没有用。因为我相信你提供的代码和我的代码之间没有差异。谢谢你的回答。日分