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

WBOY
Libérer: 2016-07-06 13:53:11
original
821 Les gens l'ont consulté

<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 "
Copier après la connexion
Copier après la connexion
"; 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>
Copier après la connexion
Copier après la connexion

回复内容:

<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 "
Copier après la connexion
Copier après la connexion
"; 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>
Copier après la connexion
Copier après la connexion

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

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

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

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

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal