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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

請(qǐng)教一個(gè)php中二維數(shù)組元素組合的算法

請(qǐng)教一個(gè)php中二維數(shù)組元素組合的算法

收到一只叮咚 2019-04-19 16:29:37
$arr=array(array('a','b','c'),array('c','f'),array('g','z'),array('x','y'));//$arr子集元素長(zhǎng)度可能會(huì)多一些//將$arr的子集元素與$arr其他子集元素兩兩組合或者三三四四組合//子集array('a','b','c')中的元素不需要組合//兩兩組合$newarr=array(array('a','c'),array('a','f'),array('b','c'),array('b','f'),array('c','c'),array('c','f'),……)//三三組合$newarr=array(array('a','c','g'),array('a','f','g'),array('b','c','g'),array('b','f','g'),array('c','c','g'),array('c','f','g'),……)//四四組合$newarr=array(array('a','c','g','x'),array('a','f','g','x'),array('b','c','g','x'),array('b','f','g','x'),array('c','c','g','x'),array('c','f','g','x'),……)用一個(gè)函數(shù)可以實(shí)現(xiàn)嗎?//$arr:原始數(shù)組,$cNum:組合長(zhǎng)度functiongetCombination($arr,$cNum){……}
查看完整描述

2 回答

?
慕村9548890

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

遞歸?
$arr=array(
array('a','b','c'),
array('c','f'),
array('g','z'),
array('x','y')
);
//$arr:原始數(shù)組,$cNum:組合長(zhǎng)度
functiongetCombination($arr,$cNum){
if($cNum===0){
returnreturnarray(
array('a'),
array('b'),
array('c'),
);
}else{
$tmpArr2=$arr;
$resultArr=array();
array_pop($tmpArr2);
$lastNewArr=getCombination($tmpArr2,$cNum-1);
for($i=0;$ifor($j=0;$j$tmpArr=$lastNewArr[$i];
$tmpArr[]=$arr[$cNum][$j];
$resultArr[]=$tmpArr;
}
}
return$resultArr;
}
}
print_r(getCombination($arr,count($arr)-1));
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-19
?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

題主的問題應(yīng)該是PHP計(jì)算二維數(shù)組笛卡爾積吧?如果是的話,請(qǐng)看以下代碼:
classDescartes
{
public$sourceArray;
public$resultArray;
publicfunction__construct($array,$result)
{
$this->sourceArray=$array;
$this->resultArray=$result;
}
publicfunctioncalcDescartes($arrIndex,$arrResult)
{
if($arrIndex>=count($this->sourceArray)){
array_push($this->resultArray,$arrResult);
return;
}
$currentArray=$this->sourceArray[$arrIndex];
$currentArrayCount=count($currentArray);
$arrResultCount=count($arrResult);
for($i=0;$i<$currentArrayCount;++$i){
$currentArraySlice=array_slice($arrResult,0,$arrResultCount);
array_push($currentArraySlice,$currentArray[$i]);
$this->calcDescartes($arrIndex+1,$currentArraySlice);
}
}
}
$example=[
['a','b','c'],
['c','f'],
['g','z'],
['x','y']
];
$result=[];
$descartes=newDescartes($example,$result);
$descartes->calcDescartes(0,$result);
var_dump($descartes->resultArray);
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-19
  • 2 回答
  • 0 關(guān)注
  • 654 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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