如何组合一个数组

时间:2017-01-17 05:05:10

标签: php

数组是这样的:$arr = array("a","b","c","d");

我想把它结合起来。结果必须为"abcd",不得重复。

示例:$ r = array(“ab”,“cd”)||数组(“a”,“bcd”)||数组(“abcd”)||数组(“ab”,“c”,“d”)

现在我使用以下功能:

function combination(){  
$str = array("a","b","c","d");  
$result = array();  
$c = count($str);  
$nbin = 1 << $c;  
for($i = 1; $i < $nbin; $i++){  
        $element = "";  
        for($j=0;$j < $c; $j++){  
                if((1 << $j & $i) !=0 ){  
                        $element .= $str[$j];  
                }  
        }  
        array_push($result,$element);  
}  
        return $result;  
}  

这是$ result:

Array
(
    [0] => a
    [1] => b
    [2] => ab
    [3] => c
    [4] => ac
    [5] => bc
    [6] => abc
    [7] => d
    [8] => ad
    [9] => bd
    [10] => abd
    [11] => cd
    [12] => acd
    [13] => bcd
    [14] => abcd
)

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我有点不确定你希望代码返回的确切内容。假设您要返回的只是数组的元素14(仅限abcd),您可以使用PHP函数implode。这将数组中的所有元素连接在一起。即,

$array = array('a', 'b', 'c', 'd');
var_dump(implode($array));
var_dump(implode('-', $array));

会回来 字符串'abcd' 然后 字符串'a-b-c-d'

我希望这能回答你的要求。