随天马行空
/**
* 处理数组数据拼接
* @param unknown $value 数组
* @param unknown $k 数组某个下标
* @param unknown $v 数组某个下标的数组数据
* @return string
*/
function dealArr($value,$k,$v){
$result_str="";//存放拼接后的数据
//判断下一个要拼接的数组下标
if($k==count($value)-1){
//当前下标的数组,为最后一个,则要处理下一个拼接的数组重头开始,下标0
$i=0;
}else{
//否则,当前数组的下一个
$i=$k+1;
}
for ( ; $i
//拼接数据
for($j=0; $j
//主数组
$result_str.=$v[$j];
//拼接的数组
$result_str.=$value[$i][$j];
}
$result_str.=",";//用,隔开,处理下一个
$i=$i+1;//数组下标向后移 如0-->1,1 -->2
//还得判断非第一次$i是否等于当前下标$k,如$k=1,则1的数组要拼接2的数组,1的数组还要拼接0的数据
//到此就结束了,没必要,1的数组又要拼接1的数组
if($i==$k){
break;
}
if($i>=count($value)){
//当已达到数组最后一个时,返回从新走,如2-->0
$i=0;
//到此就结束了,没必要
if($i==$k){
break;
}
}
}
return $result_str;
};
$value=array(
array("a","b","c"),
array("b","c","a"),
array("x","y","z"),
);
//你顺序规则是,以当前某一数组为主,将其他数组对应位置的数据,放到当前数组对应位置的后面
//如 array("a","b","c")为主,拼接array("b","c","a"),得到abbcca,然后在拼接下一个数组
$result_str="";
foreach ($value as $k => $v){
$result_str.=dealArr($value, $k, $v);
}
$result_str=trim($result_str,',');//去除结果多余的,
$result_arr=explode(",",$result_str);//结果转成数组
print_r($result_arr);//输出结果
?>求采纳 ^_^!!!