警告:in_array()期望参数2是数组

时间:2013-05-15 10:38:32

标签: php arrays grep

我阅读了php in_array手册并创建了一些代码行。

    $handle = fopen("/path/to/file", "a")  or die('Cannot open file:');

    $y= $command_name1.$steps1;
    $x=trim(shell_exec("grep -ri -o '$y' /path/to/file "));
    $Z=array($x);
    if (in_array($y,$z,false))
    {
            echo "thise 2 variables are already in this file";
            fclose($handle);
    }

    else {
    //write some thing on  that file
    }

但这会产生上述错误。我想知道的是,可以将2个变量($command_name1$steps1)加在一起并通过in_array进行搜索吗?

2 个答案:

答案 0 :(得分:9)

$x不是数组,因此您会收到该错误。

take a lookin_array()定义和使用。

从功能签名

可以看出
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

你需要第二个参数(在这种情况下是$haystack)是一个数组而不是一个标量值(无论它是什么类型)

答案 1 :(得分:2)

shell_exec()返回字符串而不是数组,因此$x不是数组。

我的猜测是,OP希望使用strpos()代替shell_exec()

参考:http://php.net/manual/en/function.shell-exec.php