v2.5.2
Giriş yap

sabit olmayan dizide nasıl kontrol sağlarım

konya
482 defa görüntülendi

merhabalar benim veriler dizisini foreach ile aldığımda aşağıda ki yapıda sonuç alıyorum

yapıda
[N]==1 maç sonucu 1 kazanırsa
[N]==2 maç sonucu berabere biterse
[N]==3 maç sonucu deplesman kazanırsa

[O] kısımları ise oranları

yapıda bakarsak Galatasaray Fenerbahçe maçının ms1 msx ms2 var ancak Bursaspor - Altay maçının ms1 ve msx verilmemiş sadece ([N]=3)ms2 verilmiş

Array
(
    [Taraflar] => Galatasaray Fenerbahçe
    [Oranlar] => Array
        (
            [macsonucu] => Array
                (
                    [0] => Array
                        (
                            [N] => 1
                            [O] => 1.25
                        )

                    [1] => Array
                        (
                            [N] => 2
                            [O] => 4
                        )

                    [2] => Array
                        (
                            [N] => 3
                            [O] => 6
                        )

                )


        )

)
Array
(
    [Taraflar] => Bursaspor - Altay
    [Oranlar] => Array
        (
            [macsonucu] => Array
                (
                    [0] => Array
                        (
                            [N] => 3
                            [O] => 8
                        )


                )


        )

)

nasıl bir filtreleme ile istediğim sonucu alabilirim istediğim yapı

Taraflar                ms1  msx ms2
Galatasaray Fenerbahçe  1.25 2   4
Bursaspor - Altay        -   -   8
okumusmr
1052 gün önce

Merhaba, Oranlar altındaki macsonucu array'ini count() fonksiyonundan geçirip sonuca göre yazdırabilirsin.

Verdiğin örneğe göre şu şekilde bir çözüm olabilir.


$maclar = [
    [
        'taraflar' => 'Galatasaray Fenerbahçe',
        'oranlar' => [
            'macsonucu' => [
                0 => [
                    'N' => '1',
                    'O' => '1.25',
                ],
                1 => [
                    'N' => '2',
                    'O' => '4',
                ],
                2 => [
                    'N' => '3',
                    'O' => '6',
                ]
            ]
        ],
    ],
    [
        'taraflar' => 'Bursaspor - Altay',
        'oranlar' => [
            'macsonucu' => [
                0 => [
                    'N' => '4',
                    'O' => '8',
                ],
            ]
        ],
    ],
];
?>

<table class="table">
    <thead>
    <tr>
        <th scope="col">Taraflar</th>
        <th scope="col">MS1</th>
        <th scope="col">MSX</th>
        <th scope="col">MS2</th>
    </tr>
    </thead>
    <tbody>
    <?php
    foreach ($maclar as $mac) { ?>
        <tr>
            <?php
            if (count($mac['oranlar']['macsonuc']) === 3) { ?>
                <td><?php echo $mac['taraflar'] ?></td>
                <td><?php echo $mac['oranlar']['macsonuc'][0] ?></td>
                <td><?php echo $mac['oranlar']['macsonuc'][2] ?></td>
                <td>@<?php echo $mac['oranlar']['macsonuc'][3] ?></td>
                <?php
            } elseif (count($mac['oranlar']['macsonuc']) === 2) {
                ?>
                <td><?php echo $mac['taraflar'] ?></td>
                <td>-</td>
                <td><?php echo $mac['oranlar']['macsonuc'][2] ?></td>
                <td>@<?php echo $mac['oranlar']['macsonuc'][3] ?></td>
                <?php

            } elseif (count($mac['oranlar']['macsonuc']) === 1) { ?>
                <td><?php echo $mac['taraflar'] ?></td>
                <td>-</td>
                <td>-</td>
                <td>@<?php echo $mac['oranlar']['macsonuc'][3] ?></td>
                <?php

            } else {
                ?>
                <td colspan="3">Hatalı Veri</td>
                <?php
            }
            ?>
        </tr>
    <?php } ?>
    </tbody>
</table>

Tabi bu yapı çok daha güzel kurulabilir.