关于两个变量分割重组


$e = 'ray#b_spike#693393398#ddgwj#非洲美男';
$a = '你我#你好#兔子#猫#狗#等待';

请问怎么把$e里用#分隔的值随机分配给$a里的
希望得到结果:
ray:你我
b_spike:你好
693393398:兔子
ddgwj:猫

当$e里分隔的个数小于$a个数时,$e里的分配完后可以重复分配给$a

请直接给个代码可以吗,谢谢了

试一下以下代码:

$e = 'ray#b_spike#693393398#ddgwj#非洲美男';
$a = '你你#你好#兔子#猫#狗#等待';
$eArr = explode('#',$e);
var_dump($eArr);
echo "<br />";
$aArr = explode('#',$a);
var_dump($aArr);
echo "<br />";
$eNum = count($eArr);
$aNum = count($aArr);
$j = 0;
for($i=0;$i<$aNum;$i++){
    if($i < $eNum){
        echo $eArr[$i].':'.$aArr[$i].'<br>';        
    }else{    
        echo $eArr[$j].':'.$aArr[$i].'<br>';
        $j++;        
    }
}

你这需求有个逻辑错误:
如果让 $e里分隔的个数小于$a个数,数组里变成有同个key,比如 ['ray' => '你我', ... ,'ray' => '等待'];这是不被允许的,会被替换掉

$e = 'ray#b_spike#693393398#ddgwj#非洲美男';
$a = '你我#你好#兔子#猫#狗#等待';

$e = explode("#", $e);
$a = explode("#", $a);
$length = count($e);
$res = array();
foreach($a as $k => $v) {
  if($k < $length) {
    $res[$e[$k]] = $v;
  } else {
    $res[$e[$k - $length]] = $v;
  }
}
var_dump($res);