【问题标题】:PHP in array for just start of array element数组中的 PHP 只是数组元素的开始
【发布时间】:2013-02-13 16:12:20
【问题描述】:

我有这个代码:

$array = array("Keys,placeholder", "Cheese,placeholder", "Knees,placeholder");

if(in_array("Cheese", $array)) {
    print("We do indeed have cheese!");
}

else {
    print("No cheese, Gromit!");
}

但是当它检查数组时,它会检查整个东西是否是“奶酪”,而不仅仅是它是否包含文本“奶酪”。

有没有办法实现我想要的?

编辑:另外,我只希望只有第一位包含奶酪时触发代码;所以对于这个例子:

$array = array("Keys,placeholder", "Placeholder,cheese", "Knees,placeholder");

if(in_array("Cheese", $array)) {
    print("We do indeed have cheese!");
}

else {
    print("No cheese, Gromit!");
}

我不希望代码被触发。

【问题讨论】:

    标签: php arrays contains


    【解决方案1】:

    implode它:

    if (strpos(implode('', $array),'Cheese')!==false) print("We do indeed have cheese!");
    else print("No cheese, Gromit!");
    

    好的,先说奶酪,去吧:

    ... implode('|', $array), '|Cheese') ...
    

    【讨论】:

    • 谢谢!这适用于我的问题的第一部分,但不符合我刚刚所做的编辑。
    • 看来代码还是一直被触发(我把 | 改成了,)。
    • @CHRIS 不要使用,。您的内爆 $array 包含"Keys,placeholder,Placeholder,cheese,Knees,placeholder",因此会找到",cheese"。使用数组中不包含的其他字符...
    【解决方案2】:
    if (preg_match("/Cheese/i", $array)) {
      return true;
    }
    

    试试这样的

    【讨论】:

    • 谢谢,但我在使用代码时收到此警告:警告:preg_match() 期望参数 2 为字符串,第 3 行给出的数组
    • preg_match 需要一个字符串。你可以 `preg_match('somepattern',implode('',$array)) 虽然...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多