0

私は次のようなベンダーの配列を持っています:

$listOfVendors 

私のビューでは、foreachを使用してこの配列をループします。

<?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 ?> 

各ベンダーオブジェクトには、次のプロパティがあります。

vendors_Idnamecountrygoodssite_addressactivitys_Id。最後のactivities_Idは、テーブルアクティビティのFKであり、当面は、ディーラーとアーティストの2種類のアクティビティがあります。

ここで、ベンダーのタイプごとに1回ヘッダーを追加したいと思います。したがって、次のようなものを取得したい:

アーティスト

Vendor1(DE)、Eigenポスターおよび商品、http://www.linktosite.com

ディーラー

Vendor2(BE)、おもちゃ、DVD、本、http: //www.anotherlink.be

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

どうすればよいですか?この一見単純なことについて頭を悩ませているようには思えません。

ソリューションのために編集

コントローラアクティビティ->機能ベンダー

//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);
}   

活動/ベンダーを表示する

<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>

私はそれをより動的にすることができましたが、今のところ、これはまさにそれがどうあるべきかです。

$listOfVendorsByTypeのvar_dumpは次のようになります。

Var_dump($ listOfVendorsByType)

4

3 に答える 3

1

2回ループするよりも、外部キーのデータを取得する必要があると思います。ベンダーを「リンク」し、正しくアクティブ化するようにしてください。

foreach (activities ...) {
  // looping 2 times
  foreach (vendor ...) {
    // looping x times (=amount of vendors)
    ...
  }
}
于 2012-05-18T13:38:13.583 に答える
1

ネストされた配列を作成する必要があります。

<?php 
 foreach($listOfVendors as $vendor) {
   $vendorsByType[$vendor['activities_id']][] = $vendor;
 }
?> 

これで、2つのforeachループを使用して、このネストされた配列をループする必要があります。

于 2012-05-18T13:39:16.017 に答える
1

この配列を追加します

$header = array( "header1", "header2", "header3" );

// $ header [0] = "header1" $ header [1]="header2"など

$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 ?> 
于 2012-05-18T13:44:51.743 に答える