A dumb question, please give me some advice! ! !
Jul 06, 2016 pm 01:53 PM
<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>"; var_dump(combine_increase($arr, 0, $result, $num, $num, count($arr))); echo "</pre>"; echo "<br/>";</code>
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>"; var_dump(combine_increase($arr, 0, $result, $num, $num, count($arr))); echo "</pre>"; echo "<br/>";</code>
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

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

How To Set Up Visual Studio Code (VS Code) for PHP Development
