php 数组结合

WBOY
Release: 2016-06-13 11:57:47
Original
1104 people have browsed it

php 数组组合
$set = array('a','b','c','d');

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

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

------解决方案--------------------
引用:
$set = array('a','b','c','d');<br />$res = $set;<br />for($i=0, $p=1; $i<count($res) && isset($set[$p]); $i++, $p++) {<br />  $res[] = $res[$i] . $set[$p];<br />}<br />print_r($res);
Copy after login
Copy after login
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => ab
[5] => bc
[6] => cd
)

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


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

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!