为了账号安全,请及时绑定邮箱和手机立即绑定

求助:这样的php多维数组如何拼接成最后我想要的结果?

求助:这样的php多维数组如何拼接成最后我想要的结果?

猛跑小猪 2019-05-20 09:34:27
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
)
                            
查看完整回答
反对 回复 2019-05-20
?
富国沪深

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-无锁
)
                            
查看完整回答
反对 回复 2019-05-20
  • 2 回答
  • 0 关注
  • 314 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信