有数组$arr = array('面積','収入','年齢','性別');
以上の数組里の元素、構成は次のようになります:
地域 性別 収入 年齢
地域 性別 年齢 収入
地域 収入 性別 年齢
地域 収入 年齢 性別
地域 年齢 男女収入
地域 年齢 収入 性別
男女 収入 年齢 地域
男女所得地域 年齢
男女年齢地域 収入
男女年齢所得地域
性別地域 年齢所得
男女地域 所得年齢
所得年齢 男女地域
所得年齢地域 男女
所得地域 男女年齢
所得地域 年齢男女
所得男女地域 年齢
収入男女年齢エリア
年齢収入エリア男女
年齢収入男女エリア
年齢エリア男女収入
年齢エリア収入男女
年齢男女エリア収入
年齢男女収入エリア
希望各位大神能提供好算法
$arr = array('Area','Income','Age','Gender');print_r(Arrangement($arr));//排列 Arrangementfunction Arrangement($arr = array(), $res = '') { if(! is_array($arr) ) $arr = str_split($arr); if(empty($arr)) $array[] = $res; else foreach($arr AS $k => $v) { unset($arr[$k]); foreach( Arrangement($arr, $res . " $v") AS $t) $array[] = $t; $arr[$k] = $v; } return $array;}
<?php$arr = array('Area','Income','Age','Gender');print_r(Arrangement($arr));function Arrangement($arr, $k=null) { if($k !== null) { unset($arr[$k]); } if(count($arr) == 1) { return $arr; } $result = array(); foreach($arr as $k => $v) { foreach(Arrangement($arr, $k) as $av) { $result[] = $v . ' ' . $av; } } return $result;}