本来的关系就不是嵌套循环的关系
使用explode,implode切割合并字符串会容易控制一点。
或者改改:
$str_str="1|2|3";
$str_substr="1@a,b,c#2@aa,bb,cc#3@aaa,bbb,ccc";
$str_tok = strtok($str_str,"|");
$i=1;
while($str_tok!==false && list($a1,$a2,$a3)=explode('#',$str_substr))
{
echo $str_tok."<br>==============<br>";
echo ${'a'.$i}.'<br>';
echo substr(${'a'.$i},0,strpos(${'a'.$i},"@"))."<br/>";
echo "----------------------------<br/>";
$str_tok = strtok("|");
$i++;}