php 数组组合

WBOY
WBOYOriginal
2016-06-23 13:56:43858Durchsuche

$set = array('a','b','c','d');

该如何把数组组合,输出的结果是
a
b
c
b
ab
ac
ad
bc
bd


回复讨论(解决方案)

$set = array('a','b','c','d');$res = $set;for($i=0, $p=1; $i<count($res) && isset($set[$p]); $i++, $p++) {  $res[] = $res[$i] . $set[$p];}print_r($res);
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => ab
    [5] => bc
    [6] => cd
)

$set = array('a','b','c','d');$res = $set;for($i=0, $p=1; $i<count($res) && isset($set[$p]); $i++, $p++) {  $res[] = $res[$i] . $set[$p];}print_r($res);
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => ab
    [5] => bc
    [6] => cd
)


版主这个输出的和楼主的不一样啊,我没太搞懂楼主到底是要怎么组合输出这个数组,我的解决方法如下,这里不用输出cd就可以了
<?php$set = array('a','b','c','d');$len = count($set);$res = array();for($i=0,$k=$len;$i<$len;$i++){  $res[$i] = $set[$i];  for($j=$i+1;$j<$len;$j++){    $res[$k++] = $set[$i].$set[$j];  }}ksort($res);var_dump($res);?>


array (size=10)  0 => string 'a' (length=1)  1 => string 'b' (length=1)  2 => string 'c' (length=1)  3 => string 'd' (length=1)  4 => string 'ab' (length=2)  5 => string 'ac' (length=2)  6 => string 'ad' (length=2)  7 => string 'bc' (length=2)  8 => string 'bd' (length=2)  9 => string 'cd' (length=2)

$set = array('a','b','c','d');$arr=array();for($j=0;$j<sizeof($set);$j++){    $arr[]=$set[$j];}foreach($set as $k=>$v){    for($i=$k;$i<=(3-$v);$i++){        if($v==$set[$i]) continue;        $arr[]=$v.$set[$i];    }}print_r($arr);

Array(    [0] => a    [1] => b    [2] => c    [3] => d    [4] => ab    [5] => ac    [6] => ad    [7] => bc    [8] => bd    [9] => cd)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn