php多维数组全部组合(可直接使用)
2015-02-09 16:55
204 查看
正好用到时网上找到的代码,不过老外的代码用到了“按值传递”,在php5以上编译报错,我修改了一下。大家可以直接使用 function combos($data, &$all = array(), $group = array(), $val = null, $i = 0) { if (isset($val)) { array_push($group, $val); } if ($i >= count($data)) { array_push($all, $group); } else { foreach ($data[$i] as $v) { combos($data,$all,$group, $v, $i + 1); } } return $all; } $data = array ( array('a', 'b'), array('e', 'f', 'g'), array('w', 'x', 'y', 'z'), ); $combos = combos($data); var_export($combos); 输出什么? 它会 输出 a e w,a e x .......b g z ,所有可能的排列组合。这在做一些业务算法匹配时很有用,和大家分享。 php中有按值传递,如函数中的&$all ,但是php创始者认为在php中有按值传递“影响代码的简洁性”,所以后面很可能会抛弃。 事实上你在函数体内使用 按值传递会报出 "Call-time pass-by-reference has been deprecated"这样的警告,目前的解决办法是在函数名上使用按值传递。不要在函数体内部用。同时不建议修改php.ini使 警告不产生,这是无节操的程序员。
相关文章推荐
- PHP使用array_multisort对多个数组或多维数组进行排序
- PHP 多维数组 Key Value的使用
- php把从数据库读取出来的数据存放到数组里,然后数组不能直接使用,要转为字符串
- php生成数组的使用示例 php全组合算法
- PHP 两个多维数组根据某个键的值进行组合排序的几种思路(二)
- php两个多维数组组合遍历的实例
- php使用str_replace替换多维数组的实现方法分析
- 使用内置函数解决PHP多维数组排序问题
- [置顶] 使用php和阶乘原理 通过阶乘获取一个一维数组中全部的组合情况
- php使用str_replace替换多维数组的实现代码实例
- php两个多维数组组合遍历
- PHP使用array_fill定义多维数组的方法
- PHP的多维数组定义以及使用for循环遍历数组
- php使用str_replace替换多维数组的简单方法
- PHP 两个多维数组根据某个键的值进行组合排序的几种思路
- PHP使用array_multisort对多个数组或多维数组进行排序
- php 使用多维数组中的某一列值排序
- php:如何使用PHP排序, key为字母+数字的数组(多维数组)
- PHP Array -- 使用数组实现矩阵的数学运算 -- PHP Matrix Math Functions
- linux下使用apache http server 连接 tomcat 达到使用直接apache一个服务端口就可访问php和jsp