嵌套循环如果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”){“您在这里将布尔值与字符串进行比较,可能不是您想要做的