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

WBOY
Release: 2016-07-06 13:53:11
Original
820 people have browsed it

<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 "
";
Copy after login
Copy after login

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>
Copy after login
Copy after login

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 "
";
Copy after login
Copy after login

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>
Copy after login
Copy after login

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

Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template