Permutation of Array PHP

前端 未结 3 714
花落未央
花落未央 2020-12-07 04:46

I have the following problem:

$multidmimensional = array(

 [0] => array(
    [0] => 1, 
    [1] => 2, 
    [2] => 3
  );


  [1] => array(
           


        
3条回答
  •  萌比男神i
    2020-12-07 05:17

    That's a nice brain teasing question. Here's what I came up with, see the running demo for testing and adjusting.

    $multidimensional = array(
      0 => array(
        0 => 1,
        1 => 2,
        2 => 3,
      ),
      1 => array(
        0 => 5,
        1 => 6,
        2 => 7,
      ),
      2 => array(
        0 => 4,
        1 => 5,
      ),
    ); // just your input
    
    
    $permutations = array();
    $count = count($multidimensional);
    for ($i = 0; $i < $count; $i++) {
      $temp = array_map("permute",array($permutations),array($multidimensional[$i]));
      $permutations = $temp[0];
    }
    print_r($permutations); // OUTPUT
    
    function permute($base,$add) {
      $result = array();
      if (count($base) > 0) {
        foreach ($base AS $val1) {
          if (count($add) > 0) {
            foreach ($add AS $val2) {
              $result[] = $val1.$val2;
            }
          }
          else {
            $result = $base;
          }
        }
      }
      else {
        $result = $add;
      }
      return $result;
    }
    

提交回复
热议问题