Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql-数组字符串阻塞-单词混乱_Php_Arrays - Fatal编程技术网

Php mysql-数组字符串阻塞-单词混乱

Php mysql-数组字符串阻塞-单词混乱,php,arrays,Php,Arrays,我有一个名为mystique item的应用程序,用户必须猜测水印后面的项目。水位线不时地显现出来,一切都很完美,但我在猜单词方面有一个“小”问题。我已经在数组中添加了单词,用逗号分隔,我正在我的php中扩展这个数组,我想知道的是,如果用户弄乱了这些单词,如何让应用程序接受这些单词,例如,我的短语是:“苹果iphone4”,我想让它正确,即使用户写“苹果iphone4” 以下是我正在使用的阵列: $sp = explode(",",$gt); $sp = array_map('trim', $s

我有一个名为mystique item的应用程序,用户必须猜测水印后面的项目。水位线不时地显现出来,一切都很完美,但我在猜单词方面有一个“小”问题。我已经在数组中添加了单词,用逗号分隔,我正在我的php中扩展这个数组,我想知道的是,如果用户弄乱了这些单词,如何让应用程序接受这些单词,例如,我的短语是:“苹果iphone4”,我想让它正确,即使用户写“苹果iphone4”

以下是我正在使用的阵列:

$sp = explode(",",$gt);
$sp = array_map('trim', $sp);
if(in_array($val, $sp)) { // guess correct
    echo '1';
}
else{ // guess wrong
    echo '2';
}
检查这个

$sp = explode(",",$gt);
$sp = array_map('trim', $sp);
if(in_array($val, $sp)) { // guess correct
    echo '1';
}
else{ 
// and it only execute when if will fail
    foreach($sp as $value){
                 $check= array_diff(explode(" ", $val),explode(" ",$value));
        if(empty($check)){
            // above like make an array separating by space and match with so that
            // it will match "iphone4 pad" and "pad iphone4" as equal 
           //break;
        }else{

        }
    }

    // guess wrong
    //echo '2';
}
价值观 在下面的
$arr
中,数组等效于
$sp
$input
是用户输入等效于
$val

例子 如果用户输入的是
iphone-apple
,则代码将与
apple-iphone
匹配

如果用户输入
apple iphone 4
,它也将与
apple iphone
匹配,要阻止这种情况发生,您需要在
21
22
行取消对代码的注释

代码
我的mysql专栏是这样的:“苹果iphone4,苹果ipad,苹果ipod,苹果iphone5”…有什么错误吗?在第二次分解中使用空格,更新我的答案你不能在该上下文中使用
array_diff
:if(空(array_diff(explode(“,$val),explode(“,$value))
$arr = array(
    'apple iphone',
    'apple ipad',
    'apple ipod',
    'apple iphone5'
    );

$input      = 'apple iphone 4';
$inputArray = array_filter(explode(' ', $input));

$matched    = TRUE;
if(!in_array(trim($input), $arr)){
    $matched = FALSE;
    foreach($arr as $item){
        $itemMap = explode(' ', $item);
        $comparisonResult  = array_diff($itemMap, $inputArray);
        //$comparisonResult2 = array_diff($inputArray, $itemMap);
        if(empty($comparisonResult) /*&& empty($comparisonResult2)*/){
            $matched = TRUE;
            break;
        }
    }
}

if($matched)
    echo 1;
else
    echo 2;