21,886
社区成员
发帖
与我相关
我的任务
分享
$str_2=array("a_a_a_1","a_a_a_2","b_b_b_1","b_b_b_2","c_c_c_1","a_a_a_3");
//------------------------
$back = A($str_2);
print_r($back);
//这是分割数组的方法-----
function A($str){
sort($str); //排序,把相似的摆在一起
//定义一个二维数组来存放根据逻辑分割出来的array
$newstr = array();
for($i=0;$i<count($str)-1;$i++){
$e1 = explode("_",$str[$i]);
$e2 = explode("_",$str[$i+1]);
if($e1[0].$e1[1].$e1[2]==$e2[0].$e2[1].$e2[2]){
//先分割成(两个)数组再在递归调用A($str)
$t = $str;
array_splice($str,$i+1, 1);
$newstr = array_merge($newstr, A($str));
$str = $t;
array_splice($str,$i, 1);
$newstr = array_merge($newstr, A($str));
}
}
if(! $newstr) array_push($newstr,$str);
return $newstr;
}
Array
(
[0] => Array
(
[0] => a_a_a_1
[1] => b_b_b_1
[2] => c_c_c_1
)
[1] => Array
(
[0] => a_a_a_1
[1] => b_b_b_2
[2] => c_c_c_1
)
[2] => Array
(
[0] => a_a_a_3
[1] => b_b_b_1
[2] => c_c_c_1
)
[3] => Array
(
[0] => a_a_a_3
[1] => b_b_b_2
[2] => c_c_c_1
)
[4] => Array
(
[0] => a_a_a_3
[1] => b_b_b_1
[2] => c_c_c_1
)
[5] => Array
(
[0] => a_a_a_3
[1] => b_b_b_2
[2] => c_c_c_1
)
[6] => Array
(
[0] => a_a_a_2
[1] => b_b_b_1
[2] => c_c_c_1
)
[7] => Array
(
[0] => a_a_a_2
[1] => b_b_b_2
[2] => c_c_c_1
)
[8] => Array
(
[0] => a_a_a_3
[1] => b_b_b_1
[2] => c_c_c_1
)
[9] => Array
(
[0] => a_a_a_3
[1] => b_b_b_2
[2] => c_c_c_1
)
[10] => Array
(
[0] => a_a_a_3
[1] => b_b_b_1
[2] => c_c_c_1
)
[11] => Array
(
[0] => a_a_a_3
[1] => b_b_b_2
[2] => c_c_c_1
)
[12] => Array
(
[0] => a_a_a_2
[1] => b_b_b_1
[2] => c_c_c_1
)
[13] => Array
(
[0] => a_a_a_3
[1] => b_b_b_1
[2] => c_c_c_1
)
[14] => Array
(
[0] => a_a_a_2
[1] => b_b_b_2
[2] => c_c_c_1
)
[15] => Array
(
[0] => a_a_a_3
[1] => b_b_b_2
[2] => c_c_c_1
)
)
$strr =array(
"周四301_菲尼克斯水星_芝加哥天空_主胜_2.10",
"周二302_明尼苏达山猫_印第安纳狂热_主胜_1.20",
"周二302_明尼苏达山猫_印第安纳狂热_客胜_2.92",
);
//这是分割数组的方法-----
function A($str){
//定义一个二维数组来存放根据逻辑分割出来的array
$newstr = array();
for($i=0;$i<count($str)-1;$i++){
$e1 = explode("_",$str[$i]);
$e2 = explode("_",$str[$i+1]);
if($e1[0].$e1[1].$e1[2]==$e2[0].$e2[1].$e2[2]){
//先分割成(两个)数组再在递归调用A($str)
$t = $str;
array_splice($str,$i+1, 1);
$newstr = array_merge($newstr, A($str));
$str = $t;
array_splice($str,$i, 1);
$newstr = array_merge($newstr, A($str));
}
}
if(! $newstr) array_push($newstr,$str);
return $newstr;
}
//------------------------
$back = A($strr);
print_r($back);
Array
(
[0] => Array
(
[0] => 周四301_菲尼克斯水星_芝加哥天空_主胜_2.10
[1] => 周二302_明尼苏达山猫_印第安纳狂热_主胜_1.20
)
[1] => Array
(
[0] => 周四301_菲尼克斯水星_芝加哥天空_主胜_2.10
[1] => 周二302_明尼苏达山猫_印第安纳狂热_客胜_2.92
)
)
$strr =array("周四301_菲尼克斯水星_芝加哥天空_主胜_2.10","周二302_明尼苏达山猫_印第安纳狂热_主胜_1.20","周二302_明尼苏达山猫_印第安纳狂热_客胜_2.92");
function B($str)
{
$newstr=array();
for($i=0;$i<count($str);$i++)
{
$e{$i}=explode("_",$str[$i]);
}
for($i=0;$i<count($str);$i++)
{
array_push($newstr,$e{$i});
}
return $newstr;
}
function C($str1, $str2)
{
if ($str1[0].$str1[1].$str1[2]==$str2[0].$str2[1].$str2[2])
{
return 0;
}
else
{
return 1;
}
}
$str2 = B($strr);
for ($i=0; $i<count($str2); $i++)
{
for ($j=$i+1; $j<count($str2); $j++)
{
$temp = array();
if (C($str2[$i], $str2[$j]))
{
$temp[]=$str2[$i];
$temp[]=$str2[$j];
$result[]=$temp;
}
}
}
echo "(<br>";
foreach($result as $key=>$value)
{
echo " [".$key."]=><br>";
foreach($value as $key2=>$value2)
{
echo " [".$key2."]=>";
print_r($value2);
echo "<br>";
}
}
echo ")";
(
[0]=>
[0]=>Array ( [0] => 周四301 [1] => 菲尼克斯水星 [2] => 芝加哥天空 [3] => 主胜 [4] => 2.10 )
[1]=>Array ( [0] => 周二302 [1] => 明尼苏达山猫 [2] => 印第安纳狂热 [3] => 主胜 [4] => 1.20 )
[1]=>
[0]=>Array ( [0] => 周四301 [1] => 菲尼克斯水星 [2] => 芝加哥天空 [3] => 主胜 [4] => 2.10 )
[1]=>Array ( [0] => 周二302 [1] => 明尼苏达山猫 [2] => 印第安纳狂热 [3] => 客胜 [4] => 2.92 )
)
zend_extension = "D:/wamp/bin/php/php5.3.13/zend_ext/php_xdebug-2.2.0-5.3-vc9-x86_64.dll"
[xdebug]
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000