foreach 多维数组怎么遍历和存储??? 本帖最后由 xywl123 于 2010-12-15 22:24:08 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $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; 我在$new_arr后面加for循环的时候,为何提示出错Cannot use string offset as an array in <?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代码写的丑 你把你的for循环拿外边~~~~for($i=0;$i<count($arr[0]);$i++){ for($j=1;$j<count($arr);$j++){ $new_arr[$i][] = $arr[$j][$i]; } }这个时候新的数组已经组装完毕你循环这个数字插进数据库 就完事了呗 对不对? /*赋值并存储到数据库 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代码写的丑 new_code1在数组转换后可以用print_r来查看,但是进入我的FOR循环以后,new_code1就不是一个数组了,这是啥原因? 1.你说什么呢? 0#的帖子 你不是已经提取出来数组了么?2.有了你的数组 使用我给你写的 将你的数组组装成一个新数组3.将新数组循环foreach一下 写进数据库也行 或者你再拼接一下sql一次性写进去也行 不能再比这个说的明白了吧 $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>';} ......PHP没学好少了个foreach已经搞定,非常谢谢Alex_Best谢谢。。 求助关于PHP批量移动图片文件的方法 文件下载的问题 CRC32,很容易冲突啊 windows系统下使用获取文件信息函数的问题 怎么让iis7支持gd和mysql? 站内搜索 謝謝咯,麻煩幫我處理下正則 向高手求两正则表达式!! session问题!很简单,看看吧 为什么我打开天网防火墙之后,编写出的PHP文件执行就会出错呢?我既想用天网防火墙,又想用PHP,我该怎么办?? 请教PHP 条件查询(较复杂) 后 更新数据库 php中,数组容量的问题,在线等
$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;
我在$new_arr后面加for循环的时候,为何提示出错Cannot use string offset as an array in
//正则替换
/*获得列表页的总数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代码写的丑
for($j=1;$j<count($arr);$j++){
$new_arr[$i][] = $arr[$j][$i];
}
}这个时候新的数组已经组装完毕你循环这个数字插进数据库 就完事了呗 对不对?
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代码写的丑
0#的帖子 你不是已经提取出来数组了么?2.有了你的数组 使用我给你写的 将你的数组组装成一个新数组3.将新数组循环foreach一下 写进数据库也行 或者你再拼接一下sql一次性写进去也行 不能再比这个说的明白了吧
$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>';
}