第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在PHP中生成多個數(shù)組中所有項(xiàng)的組合

如何在PHP中生成多個數(shù)組中所有項(xiàng)的組合

如何在PHP中生成多個數(shù)組中所有項(xiàng)的組合我試圖在幾個數(shù)組中找到所有項(xiàng)目的組合。數(shù)組的數(shù)目是隨機(jī)的(這可以是2,3,4,5.)。每個數(shù)組中的元素數(shù)也是隨機(jī)的.舉個例子,我有三個數(shù)組:$arrayA = array('A1','A2','A3');$arrayB = array('B1','B2','B3');$arrayC = array('C1','C2');我想要生成一個3x3x2=18個組合的數(shù)組:A1,B1,C1A1,B1,C2A1,B2,C1A1,B2,C2A1,B3,C1A1,B3,C2A2,B1,C1A2,B1,C2.問題是要創(chuàng)建一個具有可變數(shù)量的源數(shù)組的函數(shù).
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊

下面是遞歸解決方案:

function combinations($arrays, $i = 0) {
    if (!isset($arrays[$i])) {
        return array();
    }
    if ($i == count($arrays) - 1) {
        return $arrays[$i];
    }

    // get combinations from subsequent arrays
    $tmp = combinations($arrays, $i + 1);

    $result = array();

    // concat each array from tmp with each element from $arrays[$i]
    foreach ($arrays[$i] as $v) {
        foreach ($tmp as $t) {
            $result[] = is_array($t) ? 
                array_merge(array($v), $t) :
                array($v, $t);
        }
    }

    return $result;}print_r(
    combinations(
        array(
            array('A1','A2','A3'), 
            array('B1','B2','B3'), 
            array('C1','C2')
        )
    ));


查看完整回答
反對 回復(fù) 2019-07-16
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個贊


function?array_cartesian_product($arrays){
????$result?=?array();
????$arrays?=?array_values($arrays);
????$sizeIn?=?sizeof($arrays);
????$size?=?$sizeIn?>?0???1?:?0;
????foreach?($arrays?as?$array)
????????$size?=?$size?*?sizeof($array);
????for?($i?=?0;?$i?<?$size;?$i?++)
????{
????????$result[$i]?=?array();
????????for?($j?=?0;?$j?<?$sizeIn;?$j?++)
????????????array_push($result[$i],?current($arrays[$j]));
????????for?($j?=?($sizeIn?-1);?$j?>=?0;?$j?--)
????????{
????????????if?(next($arrays[$j]))
????????????????break;
????????????elseif?(isset?($arrays[$j]))
????????????????reset($arrays[$j]);
????????}
????}
????return?$result;}


查看完整回答
反對 回復(fù) 2019-07-16
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個贊

這段代碼除了簡單外,還可以獲得多個數(shù)組的所有組合并保留鍵。

function get_combinations($arrays) {
    $result = array(array());
    foreach ($arrays as $property => $property_values) {
        $tmp = array();
        foreach ($result as $result_item) {
            foreach ($property_values as $property_key => $property_value) {
                $tmp[] = $result_item + array($property_key => $property_value);
            }
        }
        $result = $tmp;
    }
    return $result;}

例:

Array(
    Array
    (
        '1' => 'White',
        '2' => 'Green',
        '3' => 'Blue'
    ),
    Array
    (
        '4' =>' Small',
        '5' => 'Big'
    ))

將返回:

Array(
    [0] => Array
    (
        [1] => White
        [4] =>  Small
    )
    [1] => Array
    (
        [1] => White
        [5] => Big
    )
    [2] => Array
    (
        [2] => Green
        [4] =>  Small
    )
    [3] => Array
    (
        [2] => Green
        [5] => Big
    )
    [4] => Array
    (
        [3] => Blue
        [4] =>  Small
    )
    [5] => Array
    (
        [3] => Blue
        [5] => Big
    ))


查看完整回答
反對 回復(fù) 2019-07-16
  • 3 回答
  • 0 關(guān)注
  • 1242 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號