$arr_return['url'] = array_merge($arr_return['url'],$arr1[1]);如上面,我想把$arr1[1]附加$arr_return['url']在后面,可按上面的方法执行,最后结果为空,该怎么写?

解决方案 »

  1.   

    array_merge()函数预期的参数是数组,$arr_return、$arr都是二维或更高维度的数组吗?
      

  2.   


    $arr_return['url'] = array('a','b');
    $arr1[1] = array('c','d');
    $arr_return['url'] = array_merge($arr_return['url'],$arr1[1]);
    print_r($arr_return['url']);结果Array ( [0] => a [1] => b [2] => c [3] => d ) 
      

  3.   

    你的 $arr1[1] 是数组吗?
    你的 $arr_return['url'] 也是数组吗?
      

  4.   

    我这种foreach循环最后数组结果怎么为空? for ($i=1;$i<=$page_count;$i++)
    {
    $url = 'http://search.360buy.com/Search?keyword='.urlencode($callstr).'&ev=&page='.$i;
    $str = file_get_contents($url);
    $str = iconv('GBK','utf-8',$str);

    $preg = '/<div class="p-name">[^<]*<a target="_blank" href="([^>]*)" onclick="log\([^>]*\);searchlog\([^>]*\)">(.*)<\/a>/isU';
    preg_match_all($preg,$str,$arr1);//商品名称及链接

    $preg_price_url = '/(<img onerror="this\.src=\'http:\/\/www\.360buy\.com\/images\/no2\.gif\'" src="[^>]*?" \/>)<\/strong><\/div>/isU';
    preg_match_all($preg_price_url,$str,$arr2);//商品价格 

    $arr_return['url'] = array_merge($arr_return['url'],$arr1[1]);
    $arr_return['name'] = array_merge($arr_return['name'],$arr1[2]); 
    $arr_return['price'] = array_merge($arr_return['price'],$arr2[1]);
    }
      

  5.   

    这样执行,我的结果正确,在上面的foreach循环后结果为空
      

  6.   

    你的$array_return数组是哪来的?for循环中没看到定义或者返回这个数组啊。
      

  7.   

    $array_return没有定义,就是用来接收结果的
      

  8.   

    那你执行array_merge()的时候岂不是要报变量未定义的错误?error_reporting(E_ALL);确认下。
      

  9.   

    知道什么原因了,第一次循环的时候$array_return为空引起的错误,谢谢各位了