亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數組組合計算所有的組合形式?

數組組合計算所有的組合形式?

慕森卡 2019-01-19 10:04:46
array(2) { [0] => array(3) { [0] => string(3) "16G" [1] => string(3) "32G" [2] => string(3) "64G" } [1] => array(2) { [0] => string(1) "L" [1] => string(2) "XL" } } 計算所有組合 ['16G','L'] ['16G','XL'] ['32G','L'] ['32G','XL'] ['64G','L'] ['64G','XL'] 應該怎么組合成這樣的結果 array(6) { [0] => array(3) { [0] => string(3) "16G" [1] => string(3) "L" } [1] => array(3) { [0] => string(3) "16G" [1] => string(3) "XL" } [2] => array(3) { [0] => string(3) "32G" [1] => string(3) "L" } [3] => array(3) { [0] => string(3) "32G" [1] => string(3) "XL" } [4] => array(3) { [0] => string(3) "64G" [1] => string(3) "L" } [5] => array(3) { [0] => string(3) "64G" [1] => string(3) "XL" } }
查看完整描述

4 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

把我在js版本答案里代碼改成了php版如下

$input = [["16G", "32G", "64G"], ["L", "XL"]];

$output = array_reduce($input, function($result, $cross_item){
    if(!$result){
        return array_map(function($item){
            return [$item];
        }, $cross_item);
    }

    return array_reduce($cross_item, function($acc, $target) use ($result){
        return array_merge($acc, array_map(function($result_item) use ($target){
            $result_item[] = $target;

            return $result_item;
        }, $result));
    }, []);
}, []);

查看完整回答
反對 回復 2019-02-12
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

查看完整回答
反對 回復 2019-02-12
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

$arr = [["16G","32G","64G"],["L","XL"]];
    
$res = [];
for($i=0;$i<count($arr[0]);$i++){
    
    for($j=0;$j<count($arr[1]);$j++){
        $tem = [];
            $tem[] = $arr[0][$i];
            $tem[] = $arr[1][$j];
        
        if($tem){
    $res[] = $tem;
    }

    }
    
    
}

var_dump($res);
查看完整回答
反對 回復 2019-02-12
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

如果不需要管順序,只需要結果,可以用位運算,來進行全組合。

var rt=[];
const arr= [["16G", "32G", "64G"], ["L", "XL"]];
for(let i=0;i<8;i++){
   let a1=i & 3;//取低2位
   if(a1>2) continue;
   let a2=i>>2;
   let t=[arr[0][a1],arr[1][a2]];
   rt.push(t);
}
查看完整回答
反對 回復 2019-02-12
  • 4 回答
  • 0 關注
  • 566 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號