【问题标题】:how can I get one return value of array in nested loop with conditional in php?如何在 php 中有条件的嵌套循环中获取数组的一个返回值?
【发布时间】:2017-05-23 14:05:57
【问题描述】:

如何从 if else 条件中获取一个返回值数组?

我的代码如下:

function fitur_4($extract_fitur){
    $fiturempat=array();
    $data_kata3=$extract_fitur['data_kata3'];
    $data_total_kalimat=$extract_fitur['data_total_kalimat'];
    $data_kalimat=$extract_fitur['data_kalimat'];
    for ($i=0; $i<count($data_kata3) ; $i++) { 
        for ($j=0; $j<$data_total_kalimat[$i]; $j++) { 
            $start='“';
            $kata=explode(" ", $data_kalimat[$i][$j]);
            $tot_kata=count($kata);
            $end ='”';
            $pos = stripos($data_kalimat[$i][$j], $start);
            $str = substr($data_kalimat[$i][$j], $pos);
            $str_two = substr($str, strlen($start));
            $second_pos = stripos($str_two, $end);//hitung per karakter
            $str_three = substr($str_two, 0, $second_pos);//kata dalam petik dua
            $unit = trim($str_three); // remove whitespaces
            $pecah_unit=explode(" ",$unit);
            $tot_petik=count($pecah_unit);

            if(strpos($data_kalimat[$i][$j], $start)!==false){
                $fitur4= $tot_petik/$tot_kata;
                array_push($fiturempat, $fitur4);                       
            }else{
                // empty value must insert in array $fiturempat
            }
        }
        return $fiturempat;
    }
}

我想从(if & else 条件)获取数组中的返回值 $fitempat。

【问题讨论】:

    标签: php arrays if-statement return-value nested-loops


    【解决方案1】:

    在 else 部分也使用 array_push。

    function fitur_4($extract_fitur){
        $fiturempat=array();
        $data_kata3=$extract_fitur['data_kata3'];
        $data_total_kalimat=$extract_fitur['data_total_kalimat'];
        $data_kalimat=$extract_fitur['data_kalimat'];
        for ($i=0; $i<count($data_kata3) ; $i++) { 
            for ($j=0; $j<$data_total_kalimat[$i]; $j++) { 
                $start='“';
                $kata=explode(" ", $data_kalimat[$i][$j]);
                $tot_kata=count($kata);
                $end ='”';
                $pos = stripos($data_kalimat[$i][$j], $start);
                $str = substr($data_kalimat[$i][$j], $pos);
                $str_two = substr($str, strlen($start));
                $second_pos = stripos($str_two, $end);//hitung per karakter
                $str_three = substr($str_two, 0, $second_pos);//kata dalam petik dua
                $unit = trim($str_three); // remove whitespaces
                $pecah_unit=explode(" ",$unit);
                $tot_petik=count($pecah_unit);
    
                if(strpos($data_kalimat[$i][$j], $start)!==false){
                    $fitur4= $tot_petik/$tot_kata;
                    array_push($fiturempat, $fitur4);                       
                }else{
                    array_push($fiturempat, '');
                }
            }
            /// May be you need to push till both for loop end so moved down
        }
        return $fiturempat;
    }
    

    您还可以有条件推送以进行空值检查。

    【讨论】:

    • 您是否在其他部分尝试了 0 而不是 ''?.... 或者更确切地说,使用 push 您可以尝试 $fiturempat[]=0;在其他部分
    • 我又试了一次,可能是我的返回值错误,因为有嵌套循环..你呢,因为我尝试使用print_r,该值不为空,这意味着该值有输入成功..
    • 是的,假设并在我的代码中提到了你可能需要在两个 for 循环之后返回的注释:)
    • 但我希望它只返回一个数组维度,而不是二维或更多..
    • 它只会返回一个维度!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2021-09-27
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多