Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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代码中使用if/else运算符_Php_If Statement - Fatal编程技术网

在php代码中使用if/else运算符

在php代码中使用if/else运算符,php,if-statement,Php,If Statement,我的问题是: 我的项目中有以下代码: $news = "Article 20.part2"; if(strpos($news,'.part1')) {$news_n = ".part1";} else if(strpos($news,'.part2')) {$news_n = ".part2";} else if(strpos($news,'.part3')) {$news_n = ".part3";} else if(strpos($news,'.part4')) {$news_n = ".

我的问题是:

我的项目中有以下代码:

$news = "Article 20.part2";

if(strpos($news,'.part1')) {$news_n = ".part1";}
else if(strpos($news,'.part2')) {$news_n = ".part2";}
else if(strpos($news,'.part3')) {$news_n = ".part3";}
else if(strpos($news,'.part4')) {$news_n = ".part4";}
else if(strpos($news,'.part5')) {$news_n = ".part5";}

echo $news;
echo "Part number:" . $news_n . "- <a href=\"#\">Read more</a>";
等我的代码

有没有更简单的方法


提前感谢您的帮助

如果您要查找的字符串是基于您在问题中所说的编号的,您可以执行以下操作:

foreach(range(1, 50) as $i) {
    $part = sprintf('.part%d', $i);
    if(strpos($news, $part) {
        $news_n = sprintf('.%s', $part);
    }
}

如果您要查找的字符串按照您在问题中所说的方式进行编号,则可以执行以下操作:

foreach(range(1, 50) as $i) {
    $part = sprintf('.part%d', $i);
    if(strpos($news, $part) {
        $news_n = sprintf('.%s', $part);
    }
}
可能是这样的:

for($i=1;$i<100;$i++)
{
    if(strpos($news,'.part'.$i)) 
        $news_n = '.part'.$i;
}
对于($i=1;$i可能类似于:

for($i=1;$i<100;$i++)
{
    if(strpos($news,'.part'.$i)) 
        $news_n = '.part'.$i;
}
对于($i=1;$i您可以用于此

你可以用这个


使用正则表达式

$matches=[];
if (preg_match_all('.part\[( ^[0-9]{1,3}$)\]/', $news, $matches)) {
print_r($matches);
}

使用正则表达式

$matches=[];
if (preg_match_all('.part\[( ^[0-9]{1,3}$)\]/', $news, $matches)) {
print_r($matches);
}

这是最好的解决方案,但可能他需要在去regexp之前考虑循环这是最好的解决方案,但可能他需要在去regexp之前考虑循环,就像一个魔咒一样工作!谢谢!像一个魔咒一样工作!谢谢!