PHP 多个foreach()求优语化语句 本帖最后由 cngdjws 于 2013-12-02 22:31:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [code=php]foreach ($category as $v) { //查找所有分类栏目 if($v->type === '0') {$type[] = $v;} elseif($v->id == $id) {//这里面写你的第二个foreach} elseif($v->parentid == $fid) {//这里面写你的第三个foreach 依次类推} } [code] 可以尝试将foreach 转换hast array的访问试,我测试过,在一定数量背景下,约有10位的性能提升。 46 行的 if($v->parentid == $fid)始终判断的是是否为 $category 中的最后一个非0的 parentid这个逻辑有点奇怪请先理清思路 打印一下:$category 接收到值!!! 这里只传3条记录其实后台记录很多array (size=7) 0 => object(stdClass)[17] public 'id' => string '55' (length=2) public 'parentid' => string '0' (length=1) public 'catname' => string '新闻资讯' (length=12) public 'type' => string '0' (length=1) public 'picture' => null public 'describe' => null public 'recommend' => string '0' (length=1) public 'domain' => null public 'hits' => string '0' (length=1) public 'listorder' => string '0' (length=1) public 'arturl' => null public 'caturl' => null public 'skipurl' => null public 'model_id' => string '1' (length=1) public 'title' => null public 'keywords' => null public 'description' => null public 'cathtml' => string '0' (length=1) public 'arthtml' => string '0' (length=1) public 'head_tpl' => null public 'footer_tpl' => null public 'list_tpl' => null public 'article_tpl' => null 1 => object(stdClass)[18] public 'id' => string '56' (length=2) public 'parentid' => string '55' (length=2) public 'catname' => string '公司动态' (length=12) public 'type' => string '1' (length=1) public 'picture' => null public 'describe' => null public 'recommend' => string '0' (length=1) public 'domain' => null public 'hits' => string '0' (length=1) public 'listorder' => string '0' (length=1) public 'arturl' => null public 'caturl' => null public 'skipurl' => null public 'model_id' => string '1' (length=1) public 'title' => null public 'keywords' => null public 'description' => null public 'cathtml' => string '0' (length=1) public 'arthtml' => string '0' (length=1) public 'head_tpl' => null public 'footer_tpl' => null public 'list_tpl' => null public 'article_tpl' => null 2 => object(stdClass)[19] public 'id' => string '57' (length=2) public 'parentid' => string '55' (length=2) public 'catname' => string '行业资讯' (length=12) public 'type' => string '1' (length=1) public 'picture' => string '' (length=0) public 'describe' => string '栏目描述栏目描述栏目描述栏目描述栏目描述栏目描述栏目描述' (length=84) public 'recommend' => string '1' (length=1) public 'domain' => string '' (length=0) public 'hits' => string '0' (length=1) public 'listorder' => string '0' (length=1) public 'arturl' => string '' (length=0) public 'caturl' => string '' (length=0) public 'skipurl' => string '' (length=0) public 'model_id' => string '1' (length=1) public 'title' => string '' (length=0) public 'keywords' => string '' (length=0) public 'description' => string '' (length=0) public 'cathtml' => string '0' (length=1) public 'arthtml' => string '0' (length=1) public 'head_tpl' => string '' (length=0) public 'footer_tpl' => string '' (length=0) public 'list_tpl' => string '' (length=0) public 'article_tpl' => string '' (length=0) 一个数组排序的问题 程序经常将内存卡死 导致VPS当机 是何缘故? phpmysql模糊查询 不能实现 新手用mambo 请指点方向 一个获取 土豆网 toodou.com 视频真实地址的PHP源代码! 请教一个关于模拟真是用户名的生成原理 PHP MySQL 开发网络银行应用 报酬四百美元 对文本操作的疑惑 mysql是不是玩具数据库 新手。我该怎么写呢?判断语句。大神们帮帮忙~ php代码执行速度瓶颈问题 php问题,新手
foreach ($category as $v)
{
//查找所有分类栏目
if($v->type === '0')
{$type[] = $v;}
elseif($v->id == $id)
{//这里面写你的第二个foreach}
elseif($v->parentid == $fid)
{//这里面写你的第三个foreach 依次类推}
}
[code]
始终判断的是是否为 $category 中的最后一个非0的 parentid
这个逻辑有点奇怪请先理清思路
打印一下:$category 接收到值!!! 这里只传3条记录其实后台记录很多array (size=7)
0 =>
object(stdClass)[17]
public 'id' => string '55' (length=2)
public 'parentid' => string '0' (length=1)
public 'catname' => string '新闻资讯' (length=12)
public 'type' => string '0' (length=1)
public 'picture' => null
public 'describe' => null
public 'recommend' => string '0' (length=1)
public 'domain' => null
public 'hits' => string '0' (length=1)
public 'listorder' => string '0' (length=1)
public 'arturl' => null
public 'caturl' => null
public 'skipurl' => null
public 'model_id' => string '1' (length=1)
public 'title' => null
public 'keywords' => null
public 'description' => null
public 'cathtml' => string '0' (length=1)
public 'arthtml' => string '0' (length=1)
public 'head_tpl' => null
public 'footer_tpl' => null
public 'list_tpl' => null
public 'article_tpl' => null
1 =>
object(stdClass)[18]
public 'id' => string '56' (length=2)
public 'parentid' => string '55' (length=2)
public 'catname' => string '公司动态' (length=12)
public 'type' => string '1' (length=1)
public 'picture' => null
public 'describe' => null
public 'recommend' => string '0' (length=1)
public 'domain' => null
public 'hits' => string '0' (length=1)
public 'listorder' => string '0' (length=1)
public 'arturl' => null
public 'caturl' => null
public 'skipurl' => null
public 'model_id' => string '1' (length=1)
public 'title' => null
public 'keywords' => null
public 'description' => null
public 'cathtml' => string '0' (length=1)
public 'arthtml' => string '0' (length=1)
public 'head_tpl' => null
public 'footer_tpl' => null
public 'list_tpl' => null
public 'article_tpl' => null
2 =>
object(stdClass)[19]
public 'id' => string '57' (length=2)
public 'parentid' => string '55' (length=2)
public 'catname' => string '行业资讯' (length=12)
public 'type' => string '1' (length=1)
public 'picture' => string '' (length=0)
public 'describe' => string '栏目描述栏目描述栏目描述栏目描述栏目描述栏目描述栏目描述' (length=84)
public 'recommend' => string '1' (length=1)
public 'domain' => string '' (length=0)
public 'hits' => string '0' (length=1)
public 'listorder' => string '0' (length=1)
public 'arturl' => string '' (length=0)
public 'caturl' => string '' (length=0)
public 'skipurl' => string '' (length=0)
public 'model_id' => string '1' (length=1)
public 'title' => string '' (length=0)
public 'keywords' => string '' (length=0)
public 'description' => string '' (length=0)
public 'cathtml' => string '0' (length=1)
public 'arthtml' => string '0' (length=1)
public 'head_tpl' => string '' (length=0)
public 'footer_tpl' => string '' (length=0)
public 'list_tpl' => string '' (length=0)
public 'article_tpl' => string '' (length=0)