php 使用递归将二维数组将每个数组元素分别与其他数组组合
示例:
public function test(){ $data = [ [1,2,3], [4,5], [6,7] ]; $list = []; foreach ($data[0] as $k => $v){ foreach ($data[1] as $kk => $vv){ foreach ($data[2] as $kkk => $vvv){ $list[] = [$v,$vv,$vvv]; } } } echo "<pre>"; print_r($list); }
用递归方式将示例改造,这样就可以无限制数组长度了
public $list = []; public function test(){ $data = [ [1,2,3], [4,5], [6,7] ]; echo "<pre>"; $this->arrayRecurse($data,0,[]); print_r($this->list);exit; } private function arrayRecurse($data,$ii,$tmp){ for ($i = 0;$i < count($data[$ii]);$i ++){ $j = $ii + 1; $tmp[$ii] = $i; if($j < count($data)){ $this->arrayRecurse($data,$j,$tmp); } if($j == count($data)){ $t = []; for ($x = 0;$x < count($data);$x ++) { $t[] = $data[$x][$tmp[$x]]; } if(!empty($t)){ $this->list[] = $t; } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现