function foreach_aa($fdfhfd){
preg_match_all('/(?:用户名:)+([^&\s\n]+)/i',$fdfhfd,$dst1);
foreach(array_unique(str_replace("用户名:","",$dst1[0])) as $user){
return $user;
}
}用return 改成 echo 倒是可以输出但是我要的是 return 返回值  结果他只返回一条
有没办法解决

解决方案 »

  1.   

    function foreach_aa($fdfhfd){
    $returnarray=array();
    preg_match_all('/(?:用户名:)+([^&\s\n]+)/i',$fdfhfd,$dst1);
    foreach(array_unique(str_replace("用户名:","",$dst1[0])) as $user){
    $returnarray[]=$user;
    //return $user;}
    return $returnarray;
    }返回数组再处理
      

  2.   

    <?php
    $aaa = '用户名:fhrtyryrt>dfgdfhdfhd
    sdgdsgdsgds用户名:dgs3543<dfgdg用户名:dsgggsdsgd
    gfjgutyuu';
    echo foreach_aa($aaa);
    function foreach_aa($fdfhfd){
    preg_match_all('/(?:用户名:)+([^\s\n<>]+)/i',$fdfhfd,$dst1);
    foreach(array_unique(str_replace("用户名:","",$dst1[0])) as $user){
    echo $user.'##';
    }
    }
    ?>这样正常 但是是直接输出的  不是返回值
    fhrtyryrt##dgs3543##dsgggsdsgd##
    <?php
    $aaa = '用户名:fhrtyryrt>dfgdfhdfhd
    sdgdsgdsgds用户名:dgs3543<dfgdg用户名:dsgggsdsgd
    gfjgutyuu';
    echo foreach_aa($aaa);
    function foreach_aa($fdfhfd){
    preg_match_all('/(?:用户名:)+([^\s\n<>]+)/i',$fdfhfd,$dst1);
    foreach(array_unique(str_replace("用户名:","",$dst1[0])) as $user){
    return $user.'##';
    }
    }
    ?>
    则只出现这一条
    fhrtyryrt##1楼的只出现Array
      

  3.   

    返回的是数组 数组请使用 print_r(xxx) 来输出 不能用echo.
    处理数组用foreach 来处理.
      

  4.   

    $aaa = '用户名:fhrtyryrt>dfgdfhdfhd
    sdgdsgdsgds用户名:dgs3543<dfgdg用户名:dsgggsdsgd
    gfjgutyuu';foreach (foreach_aa($aaa) as $value){
    echo $value.' ';
    }
    function foreach_aa($fdfhfd){
    $ReturnArr=array();
    preg_match_all('/(?:用户名:)+([^\s\n<>]+)/i',$fdfhfd,$dst1);
    foreach(array_unique(str_replace("用户名:","",$dst1[0])) as $user){
    $ReturnArr[]=$user;
    }
    return $ReturnArr;
    }
      

  5.   

    好像麻烦很多啊。。试了下 还是不会。SINASEA不可以用print_r 好像