php数组$array如下:0=>array(size=2)0=>string'红色'(length=6)1=>string'黄色'(length=6)1=>array(size=2)0=>string'16G'(length=3)1=>string'32G'(length=3)想要的最后输出为:红色-16G红色-32G黄色-16G黄色-32G不知道是如何实现的?补充数组$array的长度不固定,可能会如下0=>array(size=2)0=>string'红色'(length=6)1=>string'黄色'(length=6)1=>array(size=2)0=>string'16G'(length=3)1=>string'32G'(length=3)2=>array(size=2)0=>string'有锁'(length=6)1=>string'无锁'(length=6)
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
functionfunc($sets){if(!$sets)return[];$result=array_shift($sets);$count=count($sets);for($i=0;$i<$count;$i++){$tmp=[];foreach($resultas$res){foreach($sets[$i]as$set){$tmp[]=$res.'-'.$set;}}$result=$tmp;}return$result;}$arr=[['红色','黄色'],['16G','32G'],['华为','荣耀','mate']];$c=func($arr);print_r($c);Array([0]=>红色-16G-华为[1]=>红色-16G-荣耀[2]=>红色-16G-mate[3]=>红色-32G-华为[4]=>红色-32G-荣耀[5]=>红色-32G-mate[6]=>黄色-16G-华为[7]=>黄色-16G-荣耀[8]=>黄色-16G-mate[9]=>黄色-32G-华为[10]=>黄色-32G-荣耀[11]=>黄色-32G-mate)
富国沪深
TA贡献1790条经验 获得超9个赞
我觉得这个最符合内容$sets=[['红色','黄色'],['16G','32G'],['华为','荣耀','mate'],['有锁','无锁']];$start_time=microtime(true);if(!$sets)return[];$result=array_shift($sets);$count=count($sets);for($i=0;$i<$count;$i++){$tmp=[];foreach($resultas$res){foreach($sets[$i]as$set){$tmp[]=$res.'-'.$set;}}$result=$tmp;}$end_time=microtime(true);//获取程序执行结束的时间$run_time=($end_time-$start_time)*1000;//计算差值毫秒echo"\r\n[页面执行时间:{$run_time}]毫秒\r\n";var_dump($result)[页面执行时间:0.056028366088867]毫秒Array([0]=>红色-16G-华为-有锁[1]=>红色-16G-华为-无锁[2]=>红色-16G-荣耀-有锁[3]=>红色-16G-荣耀-无锁[4]=>红色-16G-mate-有锁[5]=>红色-16G-mate-无锁[6]=>红色-32G-华为-有锁[7]=>红色-32G-华为-无锁[8]=>红色-32G-荣耀-有锁[9]=>红色-32G-荣耀-无锁[10]=>红色-32G-mate-有锁[11]=>红色-32G-mate-无锁[12]=>黄色-16G-华为-有锁[13]=>黄色-16G-华为-无锁[14]=>黄色-16G-荣耀-有锁[15]=>黄色-16G-荣耀-无锁[16]=>黄色-16G-mate-有锁[17]=>黄色-16G-mate-无锁[18]=>黄色-32G-华为-有锁[19]=>黄色-32G-华为-无锁[20]=>黄色-32G-荣耀-有锁[21]=>黄色-32G-荣耀-无锁[22]=>黄色-32G-mate-有锁[23]=>黄色-32G-mate-无锁)
添加回答
举报
0/150
提交
取消