数组是这样的:$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
)
我该怎么做?
答案 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'
我希望这能回答你的要求。