Home >Backend Development >PHP Tutorial >A dumb question, please give me some advice! ! !

A dumb question, please give me some advice! ! !

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-07-06 13:53:11861browse

<code>        function strToLeft($num,$arr){
            $i = $arr[$num];
            unset($arr[$num]);
            array_push($arr,$i);
            return $arr;
        }

        function combine_increase($arr, $start, $result, $count, $NUM, $arr_len,$newarr=array())  
        {  
          $i = 0;
          for ($i = $start; $i < $arr_len + 1 - $count; $i++)  
          {  
            $result[$count - 1] = $i;  
            if ($count - 1 == 0)  
            {  
              $tmp=array();
              for ($j = $NUM - 1; $j >= 0; $j--)  {
                array_push($tmp, $arr[$result[$j]]);
              }

              array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp));
            }  
            else  {
              return combine_increase($arr, $i + 1, $result, $count - 1, $NUM, $arr_len); }
            
          }  
          return $newarr;
        } 
           $arr = array('a1','b2','c3','d4','e5','x1','y1','z1');
           $num = 3;  
           $result[$num]=array();
           $newarr=array();
           echo "('a1','b2','c3','d4','e5','x1','y1','z1')";//,'e5','x1'
           echo "<br/>";
           //combine_increase($arr, 0, $result, $num, $num, count($arr));
           echo "<pre class="brush:php;toolbar:false">";
           var_dump(combine_increase($arr, 0, $result, $num, $num, count($arr)));
           echo "
"; echo "
";

This is a one-dimensional data generated by n one-dimensional arrays with different combinations of three elements. Normally, if it is not returned, just array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp) ); the sentence becomes

<code>          var_dump(strToLeft(rand(0,$NUM-1),$tmp));
          echo("<br/>");  
          
          则能列出几十条结果,但通过返回数组就只返回6个,好像是前6个,不知道如何能全部返回取到,求解!!!!</code>

Reply content:

<code>        function strToLeft($num,$arr){
            $i = $arr[$num];
            unset($arr[$num]);
            array_push($arr,$i);
            return $arr;
        }

        function combine_increase($arr, $start, $result, $count, $NUM, $arr_len,$newarr=array())  
        {  
          $i = 0;
          for ($i = $start; $i < $arr_len + 1 - $count; $i++)  
          {  
            $result[$count - 1] = $i;  
            if ($count - 1 == 0)  
            {  
              $tmp=array();
              for ($j = $NUM - 1; $j >= 0; $j--)  {
                array_push($tmp, $arr[$result[$j]]);
              }

              array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp));
            }  
            else  {
              return combine_increase($arr, $i + 1, $result, $count - 1, $NUM, $arr_len); }
            
          }  
          return $newarr;
        } 
           $arr = array('a1','b2','c3','d4','e5','x1','y1','z1');
           $num = 3;  
           $result[$num]=array();
           $newarr=array();
           echo "('a1','b2','c3','d4','e5','x1','y1','z1')";//,'e5','x1'
           echo "<br/>";
           //combine_increase($arr, 0, $result, $num, $num, count($arr));
           echo "<pre class="brush:php;toolbar:false">";
           var_dump(combine_increase($arr, 0, $result, $num, $num, count($arr)));
           echo "
"; echo "
";

This is a one-dimensional data generated by n one-dimensional arrays with different combinations of three elements. Normally, if it is not returned, just array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp) ); the sentence becomes

<code>          var_dump(strToLeft(rand(0,$NUM-1),$tmp));
          echo("<br/>");  
          
          则能列出几十条结果,但通过返回数组就只返回6个,好像是前6个,不知道如何能全部返回取到,求解!!!!</code>

I don’t understand your question. You can’t find return in combine_increase, so why should return be null?

I understand the problem, but I don’t understand the code. There are too many parameters in a mess

If you just implement an array that returns different values, there is no need to go to such trouble

And the direct output strToLeft(rand(0,$NUM-1),$tmp) results in six

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn