PHP 任意組合
阿新 • • 發佈:2019-02-15
本文轉載:http://blog.lihuanliang.com/?p=124 /** * 任意組合 * @param $arr 陣列 * @param $count 陣列中任意組合的個數(如:array('a','b','c'),傳2則為陣列*中任意兩個字母的組合,傳3則為三個字母的任意組合,超過陣列元素個數或者數量小於等於0則返回空陣列) * @return array */ function ArbitraryCombination($arr, $count) { $result = array(); if ($count <= 0 || $count > count($arr)) { return $result; } for ($i=0; $i<count($arr); $i++) { $tem1_arr = $arr; $result1 = array_splice($tem1_arr, $i, 1); if ($count == 1) { $result[] = $result1; } else { $tem2_arr = ArbitraryCombination($tem1_arr, $count-1); foreach($tem2_arr as $v) { $result[] = array_merge($result1, $v); } } } return $result; } $arr = array("a", "b", "c"); $result = ArbitraryCombination($arr, count($arr)); print_r($result);