一个无语的问题,求专家指点!!!

WBOY
Freigeben: 2016-07-06 13:53:11
Original
821 Leute haben es durchsucht

<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 = 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 "
Nach dem Login kopieren
Nach dem Login kopieren
"; echo "
";

这是一个把一维数据生成按三个元素不同组合的n个一维数组,正常如果不是返回只是把array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp));句变成

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

回复内容:

<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 = 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 "
Nach dem Login kopieren
Nach dem Login kopieren
"; echo "
";

这是一个把一维数据生成按三个元素不同组合的n个一维数组,正常如果不是返回只是把array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp));句变成

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

并没有看懂你的问题,你的combine_increase里都找不到return,何谈return是null。

问题看懂了 但是代码没看懂 参数又乱又多

如果只是实现返回不同值的数组 没必要这么麻烦吧

而且直接输出strToLeft(rand(0,$NUM-1),$tmp)结果也是六个

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage