签入字符串php

签入字符串php,php,Php,我有一个字符串,它可以包含如下值 $string='1,2,3,4,5'; 我想检查一下这个字符串是4还是5 如果它包含4个或5个,那么我希望回显成功 否则,如果它包含9或10,我希望echo失败 我知道数组中有一个n,但不知道如何使用它 谢谢在这里,数组对您没有帮助,因为您有一个字符串,而不是数组。您需要的是strpos功能: 请注意,如果在字符串中找不到它要查找的内容,它将自行返回false,因此您所要做的就是检查它是否返回结果以满足您的条件。您可以使用strpos检查字符串中是否存在子字符

我有一个字符串,它可以包含如下值 $string='1,2,3,4,5'; 我想检查一下这个字符串是4还是5 如果它包含4个或5个,那么我希望回显成功 否则,如果它包含9或10,我希望echo失败

我知道数组中有一个n,但不知道如何使用它
谢谢

在这里,数组对您没有帮助,因为您有一个字符串,而不是数组。您需要的是strpos功能:

请注意,如果在字符串中找不到它要查找的内容,它将自行返回false,因此您所要做的就是检查它是否返回结果以满足您的条件。

您可以使用strpos检查字符串中是否存在子字符串,如下所示:

if(strpos(','.$string.',', ','.$number_to_check_for.',') !== false) {
    //success, substring was found
} else {
    //error, substring was not found.
}
if(in_array('4', explode(',', $string))) echo "it's in there";
或者您可以将其分解为一个数组,然后在_数组中使用:


但我推荐第一种解决方案,因为它更清洁、更高效。

您可以像这样测试数字4:

if(strpos(','.$string.',', ','.$number_to_check_for.',') !== false) {
    //success, substring was found
} else {
    //error, substring was not found.
}
if(in_array('4', explode(',', $string))) echo "it's in there";
或者仅通过字符串搜索:

if(strpos(',4,', ','.$string.',') !== false) echo "it's in there";
一次检查所有项目:

ifin_arrayarray4,5,explode',',$string echo success


ifin_arrayarray9,10,explode',',$string echo故障

如果$string可以包含4、14和41,则strpos示例将失败。否,strpos在OP:s的情况下不起作用。字符串中有49,结果将是真的和假的。如果使用正确,strpos可以工作。请参阅Scott Saunders的回答要稍微扩展Scott的回答,通常您总是使用字符串函数检查字符串比较,strpos是一个选项-注意,他使用了一个强大的!==简单地说是假的!=如果字符串中的第一个字符是4或5,则0的有效字符串偏移量也将为FALSE。0将返回0。还值得注意的是,许多人也给出了in_数组响应,这纯粹是因为您提到了它,并且在这种特定情况下,您可以在逗号上分解以获得数组,通常我们会坚持使用字符串函数。
$goodString = '1,2,3,4,5';
$badString = '1,2,3,7,8,9,10';

function checkString($str) {
    $arr = explode(',', $str);
    $message = 'no message';
    if (
        in_array(4, $arr)||
        in_array(5, $arr)
    ) {
        $message = 'success';
    } else if (
        in_array(9, $arr)||
        in_array(10, $arr)
    ) {
        $message = 'fail';
    }
    echo $message;
}

checkString($goodString); // prints success
checkString($badString); // prints fail