具有语言代码的数组的排列

时间:2014-07-15 10:22:18

标签: php algorithm permutation

我有阵列

$langs = array('en', 'de', 'pt', .....);

现在我想生成一个这样的数组:

$result = array(
  array('en' => array('de', 'pt'),
  array('de' => array('en', 'pt'),
  array('pt' => array('en', 'de'),
  ....
);

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试这种方式:

 $langs = array('en', 'de', 'pt');
 $arr = array();
 foreach($langs as $key => $lang){
        $arr[$lang] = $langs;
        unset($arr[$lang][$key]);
        sort($arr[$lang]);
 }

 print_r($arr);

检查 PHP FIDDLE

答案 1 :(得分:1)

您还可以使用array_diffarray_values

获得结果
$langs = array("en", "de", "pt");        

foreach($langs as $val) 
{
        $array[$val] = array_values(array_diff($langs, array($val)));      
}

print_r($array);