Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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_Php - Fatal编程技术网

嵌套循环如果php

嵌套循环如果php,php,Php,我尝试运行以下代码: 1) 我检查$string\u结果的第一个字符 2) 如果$string\u result的第一个字符在数组first\u char中匹配,它将输出字符串结果 3) 如果第一个字符等于“n”,我将$string_result的前两个字符与数组第二个_字符进行比较 4) 如果我删除嵌套的If n else,它会工作得很好。我在那里犯了一些逻辑错误吗 <?php $string_result = "nyanyi"; function awalan_pe(

我尝试运行以下代码:

  • 1) 我检查$string\u结果的第一个字符
  • 2) 如果$string\u result的第一个字符在数组first\u char中匹配,它将输出字符串结果
  • 3) 如果第一个字符等于“n”,我将$string_result的前两个字符与数组第二个_字符进行比较
  • 4) 如果我删除嵌套的If n else,它会工作得很好。我在那里犯了一些逻辑错误吗

    <?php
        $string_result = "nyanyi";
        function awalan_pe($string_result){
        $first_char = array("m", "n", "r", "l", "w");
        $second_char = array("ny", "ng");
        $result = (substr($string_result, 0,2));
        foreach ($first_char as $value){
        if ($string_result[0] == $value) {
            $final_result = "pe".$string_result;
    
            if(($string_result[0] == $value) == "n"){
                foreach ($second_char as $value){
                    if($result == $value){
                    $final_result = "pe".$string_result;
                    }
                }
            }
        }
        else{
            return null;
        }
     }
    return $final_result;
    }
    echo awalan_pe($string_result);
    ?>
    
    
    

遗憾的是,它返回空值

它将
返回null
,因为在找到正确的迭代后,您不会停止迭代

找到最终结果后,移动return
$final\u result

$final_result = "pe".$string_result;
return $final_result;

在这种情况下,in_数组会有所帮助,请查看下面的自定义代码

<?php
    $string_result = "nyanyi";
    function awalan_pe($string_result){
    $first_char = array("m", "n", "r", "l", "w");
    $second_char = array("ny", "ng");
    $result = (substr($string_result, 0,1)); //store 1st Char
    $result2 = (substr($string_result, 0,2)); //store 1st and 2nd Char
    $flag=0;
    if($result === "n") //if first char is "n"
    {
        if(in_array($result2, $second_char)) //to check whether entry is present in array or not
        {
            $final_result= "String Found";
            $flag=1;
        }
    }
    else{
        if(in_array($result, $first_char))
        {
            $final_result= "String Found";
            $flag=1;
        }
    }
    if($flag == 0)
    {
    return null;
    }

return $final_result;
}
echo awalan_pe($string_result);
?>

顺便说一句,我修改了:

public function awalan_pe($string_result){
        $first_char = array("m", "n", "r", "l", "w");
        $second_char = array("ny", "ng");
        $str_len = strlen($string_result);
        for($i = 0; $i <= $str_len; $i++){
            foreach($first_char as $f_char){
                if(substr($string_result,$i,$i+1) == $f_char){
                    if(substr($string_result,$i,$i+1) == "n"){
                        for($j=0; $j <= $str_len; $j++){
                            foreach($second_char as $s_char){
                                if(substr($string_result,$i,$i+2) == $s_char){
                                    return "in second array value:" .$s_char;
                                }
                            }
                        }
                    }
                }
            }
        }
        return "not in first array";
    }
公共函数awalan\u pe($string\u result){
$first_char=数组(“m”、“n”、“r”、“l”、“w”);
$second_char=数组(“ny”、“ng”);
$str_len=strlen($string_result);
对于($i=0;$i“如果($string_result[0]==$value)=“n”){“您在这里将布尔值与字符串进行比较,可能不是您想要做的