将$ _GET中的字符串与数组中的字符串进行比较

时间:2012-05-21 14:37:51

标签: php arrays string foreach compare

这令我很沮丧,因为我对PHP很陌生,并且我确信我缺少一些关于语言本质的基本知识。但为什么哦为什么这不起作用?

$tag = $_GET['id'];
$openfile = fopen($files[$i], "r");
$tagsraw = fgets($openfile);
$tag_array = explode(",",$tagsraw);
foreach ($tag_array as $a) {
    if ($a == $tag) {
        echo $a." matches ".$tag;
    }
}

编辑:顺便说一句,文件打开工作正常; print_r()表明$tag_array填充了它的含义。

编辑:以下是print_r()的打印输出。有五个文件,每个文件的第一行都有标签。

Array
(
    [0] => webdesign

)
Array
(
    [0] => personal

)
Array
(
    [0] => recipes
    [1] => vegan

)
Array
(
    [0] => personal

)
Array
(
    [0] => personal

)

1 个答案:

答案 0 :(得分:4)

我的魔法水晶球告诉我“不起作用”意味着

if ($a == $tag) {

永远不是真的吗?

你可能在其中一个周围有空白字符。使用var_dump()来检查变量的值。请注意,var_dump告诉您数据类型,对于字符串,字符串长度以字节为单位。

如果有空格,可以使用PHP的trim函数删除它:

if (trim($a) == trim($tag)) {