PHP可能有限的数组组合[关闭]

Here i have used following function to get the possible combinations for the given array.

    function combination($array, $str = '') 
{
   $current = array_shift($array);
   if(count($array) > 0) {
       foreach($current as $element) 
       {

           combination($array, $str.$element);

       }
   }
   else
   {
       foreach($current as $element) 
       {
         echo '<br>'.$str.$element;

       }
   } 
}

$array = array(
                array( ' A1', ' A2', ' A3', ' A4'),
                array(' B1', ' B2', ' B3', ' B4'),
                array(' C1',' C2'));



combination($array);    

    OUTPUT:
A1 B1 C1
A1 B1 C2
A1 B2 C1
A1 B2 C2
A1 B3 C1
A1 B3 C2
A1 B4 C1
A1 B4 C2
A2 B1 C1
A2 B1 C2
A2 B2 C1
A2 B2 C2
A2 B3 C1
A2 B3 C2
A2 B4 C1
A2 B4 C2
A3 B1 C1
A3 B1 C2
A3 B2 C1


EXPECTED: In this i want only to display first 10 combinations.

Here i am getting the all possible combinations of given array. But i want to display only the first 10 combinations of possible array. Please help me to overcome the issue.

This is the best and optimal solution for you. try it:-

<?php
global $i;
$i = 1; // define a global variable with value 1
function combination($array, $str = '') 
{
  global $i;
  $current = array_shift($array);
   if(count($array) > 0 && $i <=10) { // check that value is less or equal to 10 if yes then execute otherwise exit

       foreach($current as $element) 
       { 
           combination($array, $str.$element);
       }
   }
   if(count($array) <= 0 && $i <=10){ //again check if value is less or equal to 10 then execute otherwise exit 

       foreach($current as $element) 
       {        
            echo '<br>'.$str.$element;
            $i++; // increase the  value of global variable while iteration.
       }

   }
}


$array = array(array(' A1', ' A2', ' A3', ' A4'),array(' B1', ' B2', ' B3', ' B4'),array(' C1',' C2'));
combination($array);
?>

Output:- http://prntscr.com/7abrrx

Note:- Please check and tell works or not?