本帖最后由 xywl123 于 2010-12-15 22:24:08 编辑

解决方案 »

  1.   


    $arr = array(
    array('adfasdfasd','adfasdfasd','adfasdfasd','adfasdfasd','adfasdfasd','adfasdfasd'),
    array('id1','id2','id3','id4','id5','id6'),
    array('book1','book2','book3','book4','book5','book6'),
    array('one1','one2','one3','one4','one5','one6'),
    array('provi1','provi2','provi3','provi4','provi5','provi6'),
    array('prite1','prite2','prite3','prite4','prite5','prite6'),
    );
    for($i=0;$i<count($arr[0]);$i++){
    for($j=1;$j<count($arr);$j++){
    $new_arr[$i][] = $arr[$j][$i];

    }
    }
    print_r($new_arr);
    exit;
      

  2.   


    我在$new_arr后面加for循环的时候,为何提示出错Cannot use string offset as an array in
      

  3.   

    <?php //开始分析/*获得列表页的总数begin*/
    //正则替换
    /*获得列表页的总数end*//*获得信息begin*/
    //正则替换
    /*获得信息end*//*登录 begin */
    CURL的登录
    /*登录 end*/ /*获取列表 begin*/ 
    CURL获得列表页面
    /*获取列表 end*/ 
    //开始检测每个页面
    if (!empty($Lastlist)){
    for($i = 1; $i <= 1; $i++ ){
    $iurl = "http://www.123.com/list/".$Lastlist;//循环页面
    /*获得页面的内容 begin*/
    $code = request($url,'',$cookie_jar,''); 
    $code1 = getcode($code); //正则分析生成数组
    /*获得页面的内容 end*/ /*数组转换 begin*/
    for($i=0;$i<count($code1[0]);$i++){
    for($j=1;$j<count($code1);$j++){
    $new_code1[$i][] = $code1[$j][$i];
    }
    }
    /*数组转换 end */
    /*赋值并存储到数据库 begin*/
    for($w=0;$w<count($code1);$w++){
    /*数据库操作
    $conn = mysql_connect("$dbhost","$dbuser","$dbpwd");
    mysql_select_db("$dbname"); mysql_close($conn);
    */} /*赋值赋值并存储到数据库 end*/
    }
    }
    //循环结束
    ?>for($w=0;$w<count($code1);$w++){
    这个循环开始的时候,$code1[$w][1] 出错,提示Cannot use string offset as an array in请教大侠们如何解决,小弟菜鸟,PHP代码写的丑
      

  4.   

    你把你的for循环拿外边~~~~for($i=0;$i<count($arr[0]);$i++){
    for($j=1;$j<count($arr);$j++){
    $new_arr[$i][] = $arr[$j][$i];

    }
    }这个时候新的数组已经组装完毕你循环这个数字插进数据库 就完事了呗 对不对?
      

  5.   

    /*赋值并存储到数据库 begin*/
                        for($w=0;$w<count($new_code1);$w++){
                            /*数据库操作
                            $conn = mysql_connect("$dbhost","$dbuser","$dbpwd");
                            mysql_select_db("$dbname");                        mysql_close($conn);
                            */}                    /*赋值赋值并存储到数据库 end*/
    额。。上面最下面的代码贴错这个循环开始的时候,echo $new_code1[$w][1] 出错,提示Cannot use string offset as an array in请教大侠们如何解决,小弟菜鸟,PHP代码写的丑
      

  6.   

    new_code1在数组转换后可以用print_r来查看,但是进入我的FOR循环以后,new_code1就不是一个数组了,这是啥原因?
      

  7.   

    1.你说什么呢?
      0#的帖子 你不是已经提取出来数组了么?2.有了你的数组 使用我给你写的 将你的数组组装成一个新数组3.将新数组循环foreach一下 写进数据库也行 或者你再拼接一下sql一次性写进去也行 不能再比这个说的明白了吧
      

  8.   


    $arr = array(
    array('adfasdfasd','adfasdfasd','adfasdfasd','adfasdfasd','adfasdfasd','adfasdfasd'),
    array('id1','id2','id3','id4','id5','id6'),
    array('book1','book2','book3','book4','book5','book6'),
    array('one1','one2','one3','one4','one5','one6'),
    array('provi1','provi2','provi3','provi4','provi5','provi6'),
    array('prite1','prite2','prite3','prite4','prite5','prite6'),
    );
    for($i=0;$i<count($arr[0]);$i++){
    for($j=1;$j<count($arr);$j++){
    $new_arr[$i][] = $arr[$j][$i];

    }
    }//print_r($new_arr);foreach($new_arr as $v){
    echo $v[0],$v[1],$v[2],$v[3],$v[4],$v[5];
    echo '<br>';
    }
      

  9.   

    ......PHP没学好少了个foreach已经搞定,非常谢谢Alex_Best谢谢。。