首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将元素数组置于正确的标头下

问将元素数组置于正确的标头下
EN

Stack Overflow用户
提问于 2012-05-18 13:33:54
回答 3查看 1K关注 0票数 0

我有一组名为:

代码语言:javascript
复制
$listOfVendors 

我在视图中循环遍历这个数组,并给出了一个前瞻。

代码语言:javascript
复制
<?php foreach($listOfVendors as $vendor):?>         

    <p class="vendor">
        <span class="vendor-title"><?php echo $vendor->name ?>(<?php echo $vendor->country ?>)</span>, 
        <?php echo $vendor->goods ?>, <a href="<?php echo $vendor->site_adres ?>" class="vendor-link"><?php echo $vendor->site_adres ?></a>
    </p>                                            

<?php endforeach ?> 

每个供应商对象具有以下属性:

site_address,activities_Id. vendors_Id,name,country,goods,最后一个活动,activities_Id,是表中活动的FK,目前有两种类型的活动:经销商和艺术家。

现在,我想为每种类型的供应商添加一次头。所以想要得到这样的东西:

艺术家

Vendor1(DE),艾根海报e.a。商品,http://www.linktosite.com

经销商

Vendor2(BE),玩具,DVD,书籍,http://www.anotherlink.be

Vendor3(FR),商品,http://www.anotherlink2link.be

我该怎么做?我似乎无法理解这件看似简单的事情。

编辑解决方案

控制器动作->函数供应商

代码语言:javascript
复制
//Get the vendor information and add the needed headers
//Here I get all the vendors
if($listOfVendors = $this->atsusacon_model->get_records()) { 
    foreach($listOfVendors as $vendor) {
        $listOfVendorsByType[$vendor->activities_Id][] = $vendor;   
    }   
    $data['listOfVendorsByType'] = $listOfVendorsByType;    
    var_dump($listOfVendorsByType);
}   

查看活动/供应商

代码语言:javascript
复制
<section class="vendors-overview twelvecol clearBoth">

    <?php foreach($listOfVendorsByType as $activity):?> 

        <?php if ($activity[0]->activities_Id == 1) :?> 
            <h3>Artists</h3>
         <?php else :?>
            <h3>Dealers</h3>
        <?php endif ?>

        <?php foreach($activity as $vendor):?>      

            <p class="vendor">
                <span class="vendor-title"><?php echo $vendor->name ?>(<?php echo $vendor->country ?>)</span>, <?php echo $vendor->goods ?>, <a href="<?php echo $vendor->site_address ?>" class="vendor-link"><?php echo $vendor->site_address ?></a>
            </p>                                    

        <?php endforeach ?>         
    <?php endforeach ?> 

</section>

我可以让它更有活力,但就目前而言,它应该是这样的。

var_dump of $listOfVendorsByType看起来如下所示:

​

​

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-18 13:39:16

您必须创建一个嵌套数组:

代码语言:javascript
复制
<?php 
 foreach($listOfVendors as $vendor) {
   $vendorsByType[$vendor['activities_id']][] = $vendor;
 }
?> 

现在,您只需要使用两个foreach循环来循环这个嵌套数组。

票数 1
EN

Stack Overflow用户

发布于 2012-05-18 13:38:13

猜测您必须获得外键的数据,而不是必须循环两次:确保您“链接”供应商和激活正确。

代码语言:javascript
复制
foreach (activities ...) {
  // looping 2 times
  foreach (vendor ...) {
    // looping x times (=amount of vendors)
    ...
  }
}
票数 1
EN

Stack Overflow用户

发布于 2012-05-18 13:44:51

添加此数组

代码语言:javascript
复制
$header = array( "header1", "header2", "header3" );

// $header = "header1“$header1 = "header2”等等

代码语言:javascript
复制
$i=0;
<?php foreach($listOfVendors as $vendor):?>         
<p class="header">
<?php echo $header[$i]; $i++; ?>
</p>
<p class="vendor">
    <span class="vendor-title"><?php echo $vendor->name ?>(<?php echo $vendor->country ?>)</span>, 
    <?php echo $vendor->goods ?>, <a href="<?php echo $vendor->site_adres ?>" class="vendor-link"><?php echo $vendor->site_adres ?></a>
</p>                                            

<?php endforeach ?> 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10653643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档