【问题标题】:Php foreach restriction before the loop循环前的php foreach限制
【发布时间】:2012-07-18 01:15:56
【问题描述】:

我得到了一组新闻项目参数,我循环并得到结果

在执行 foreach 之前,有什么方法可以循环数组以获取特定项目,

我只想循环通过在 foreach 之前获取的特定类别的帖子

$get_cats  = $k2tools_params->get('cloud_category'); 

返回一个允许的类别数组

比我有的

       <?php foreach($this->items as $key=> $item): >
          <?php if (in_array($item->category->id,$get_cats)){ ?> 
              // do something 
          <?php} ?>

        <?php endforeach ?>
<?php echo $this->pagination->getPagesLinks(); ?>

这工作正常,但我遇到的问题是分页从$this-&gt;items 计算 18 个项目

我有 3 页的 results ,但在我的类别限制的 foreach 中,我只有 2 个项目,这导致额外的 2 个空页。

所以我必须在 foreach 之前限制类别,或者首先循环通过$this-&gt;items

谢谢你的帮助,希望你能理解。

不要介意将 html 与 php 分开的 php 标签,这是 joomla 模板

我有点想做的是 foreach 类别 id 在数组中,

【问题讨论】:

  • 你为什么有这么多的开始/结束标签?
  • 您可以将整个代码写在两个标签之间,如下所示:`
  • 是模板输出,将html和php分开

标签: php arrays foreach


【解决方案1】:

为了正确使用分页,您必须找到一些方法来修改原始 SQL 查询。

【讨论】:

    【解决方案2】:
    foreach(array_keys($items, $get_cats)) {
        // do_something
    }
    

    或尝试使用array_search

    【讨论】:

    • 不能那样做,我在循环上方获取一个类别数组,然后返回例如:[0]=>1[1]=>2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 2012-07-19
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多