时间:2021-07-01 10:21:17 帮助过:5人阅读
感谢大家的热心回复,对不起大家,之前描述问题的时侯没有说清楚问题,耽误了大家的时间。
举个例子来说明一下:
“重庆”这两个字,因“重”字是多音字,读:C、Z;“庆”字读:Q 要组合出所有读音就是:CQ,ZQ
那么,
“重庆重”这样的话,就应该组合出CQC、ZQC、CQZ、ZQZ 这四种读音
那么更多的字会组合出更多的组合
怎么实现呢?
$arr = array('a','b');
$single = array('c','b');
function merge(){
$arg = func_get_args();
$r = array();
if(0 < count($arg) && is_array($arg[0])){
$base = $arg[0];
foreach ($arg as $k => $v) {
if($k > 0 && is_array($v)){
foreach($base as $sk=>$sv){
foreach ($v as $tk => $tv) {
array_push($r, $sv.$tv);
}
}
}
}
if(0 < count($r)){
return $r;
}else{
return !1;
}
}else{
return !1;
}
}
var_dump(merge($arr, $single));
感谢大家的热心回复,对不起大家,之前描述问题的时侯没有说清楚问题,耽误了大家的时间。
举个例子来说明一下:
“重庆”这两个字,因“重”字是多音字,读:C、Z;“庆”字读:Q 要组合出所有读音就是:CQ,ZQ
那么,
“重庆重”这样的话,就应该组合出CQC、ZQC、CQZ、ZQZ 这四种读音
那么更多的字会组合出更多的组合
怎么实现呢?
$arr = array('a','b');
$single = array('c','b');
function merge(){
$arg = func_get_args();
$r = array();
if(0 < count($arg) && is_array($arg[0])){
$base = $arg[0];
foreach ($arg as $k => $v) {
if($k > 0 && is_array($v)){
foreach($base as $sk=>$sv){
foreach ($v as $tk => $tv) {
array_push($r, $sv.$tv);
}
}
}
}
if(0 < count($r)){
return $r;
}else{
return !1;
}
}else{
return !1;
}
}
var_dump(merge($arr, $single));
使用一个函数实现:
你的图片的含义:一个大数组中包含两个小数组,然后现在给出第三个数组,将其分别组合到大数组的每一个小数组里面。
实现原理:
数组合并并返回一个新数组的函数:array_merge()。
function merge($a1,$a2,$a3){
$result=array();
$t1=arrar_merge($a1,$a3);
$t2=arrar_merge($a2,$a3);
$result[]=$t1;
$result[]=$t2;
return $result;
}
$item) {
$arr[$key][0] = $arr[$key][0].$single[0];
}
var_dump($arr);
$answer=array_map(function($subArray)use($third){ return array_merge($subArray,$third);},$first);
手打,勿怪?