0

私はこのコードを持っています:

<?php foreach ($galerije as $gal): ?>
<h1><?php echo str_replace('_', ' ', $gal['naziv']) ?></h1>
<p><?php echo word_limiter($gal['opis'], 30) ?></p>
<?php echo count($slike) ?>
<hr>
<?php endforeach ?>

$galerijaは DB 内のすべてのギャラリーを表し、id_galerijaを主キーとして持ちます。

$slikeは DB 内のすべての画像を表し、それらはgalerijaと 1 対多の関係にあります (1 つのギャラリーに複数の画像を含めることができます)。galerija_id ( slike.galerija_id = galerija.id_galerija ) に関連付けられています。すべてのギャラリーの画像数をカウントするにはどうすればよいですか?

4

2 に答える 2

2

あなたはこのようにそれを行うことができます:

$galleries = array(array(
    'Galleryname' => 'Picasso',
    'Galleryimages' => array(
        '1.jpg',
        '2.jpg',
        '3.jpg',
        '4.jpg'
        ),
    array(
        '1.jpg',
        '2.jpg'
        ),
    array(
        '1.jpg',
        '2.jpg',
        '3.jpg',
        '4.jpg',
        '5.jpg',
        '6.jpg'
        ),
    ),
array(
    'Galleryname' => 'Matisse',
    'Galleryimages' => array(
        '1.jpg',
        '2.jpg'
        ),
    array(
        '1.jpg',
        '2.jpg',
        '3.jpg'
        ),
    array(
        '1.jpg',
        '2.jpg',
        '3.jpg',
        '4.jpg',
        '5.jpg',
        '6.jpg',
        '7.jpg',
        '8.jpg'
        ),
    )
);

$counts = array();
foreach ($galleries as $key => $value) {
    $counts[$value['Galleryname']] = (count($value, COUNT_RECURSIVE)-count($value)); 
}

echo '<pre>';
print_r($counts);
echo '</pre>';

最終的には:

Array
(
    [Picasso] => 12
    [Matisse] => 13
)

それはあなたが望んでいたことですか?

于 2012-11-29T11:07:28.527 に答える