Wyświetlanie danych w tabeli z pętli foreach

0

Witam mam dwie tablice Wyświetlam z nich dane w postaci:

<table class="table table-bordered">
        <tr>
            <td class="info">
                <?php
                if($aaaaaa) {
                    foreach($aaaaaa as $row)
                    {
                        echo $row['aaa'];
                    }
                }
                ?>
            </td>
            <td class="success">
                <?php
                if($bbbbbb) {
                    foreach($bbbbbb as $row)
                    {
                        echo $row['bbb'];
                    }
                }
                ?>
            </td>
        </tr>
    </table> 

Jednak tworzy mi się jeden wiersz i dwie kolumny.

Chcę uzyskać pierwszy foreach jedna kolumna i wierszy tyle co danych i obok druga kolumna tak samo.
Chodzi o efekt z html, taki:

<table class="table table-bordered">
        <tr>
            <td class="active">...</td>
            <td class="success">...</td>
            <td class="warning">...</td>
            <td class="danger">...</td>
            <td class="info">...</td>
        </tr>
        <tr>
            <td class="active">...</td>
            <td class="success">...</td>
            <td class="warning">...</td>
            <td class="danger">...</td>
            <td class="info">...</td>
        </tr>
    </table> 

Zmodyfikowałem kod:

<table class="table table-bordered">

                <?php

                if($aaaaaa) {
                    foreach($aaaaa as $row)
                    {
                        echo '<tr>
            <td class="info">';
                        echo $row['aaa'];
                    }
                }
                ?>


                <?php
                if($bbbbbb) {
                    foreach($bbbbbb as $row)
                    {
                        echo '  </td><td class="success">';
                        echo $row['bbb'];
                        echo ' </td>
        </tr>';
                    }
                }
                ?>

    </table> 

Dla pierwszego foreach jest ok, ale dla drugiego tablea zaczyna mi się pod spodem.

Edit

Zmieniłem kod na:

<table class="table table-bordered">

                <?php

                if($bbbbbb)
                {
                    foreach($bbbbbb as $row)
                    {
                        echo '<tr><td class="info">';
                        echo $row['bbb'];
                        echo '</td>';
                        echo '<td class="success">';
                        if($aaaaaa) {
                                foreach($aaaaaa as $row2)
                                {
                                    echo $row2['aaa'];
                                }
                            }
                        echo '</td>';
                        echo '</tr>';
                    }
                }
                ?>

    </table>

I efekt tabeli jest dobry tylko dla drugiego foreach wyświetla za każdym razem wszystkie dane w komórkach tabeli.
Jak wyświetlić kolejne?

0

Może ktoś mi pomóc jak wyświetlić dane z dwóch i więcej pętliforeach w tabeli html

0

Trudno zrozumieć o co Ci chodzi. Piszesz trochę tak jakbyś nie znał różnicy pomiędzy wierszem, a kolumną.

Chcę uzyskać pierwszy foreach jedna kolumna i wierszy tyle co danych i obok druga kolumna tak samo.

Z tego co rozumiem to masz:

Array
(
    [0] => dane_A1
    [1] => dane_A2
)
Array
(
    [0] => dane_B1
    [1] => dane_B2
)

I chcesz uzyskać:

<table>
		<tr>
			<td>dane_A1</td>
            <td>dane_B1</td>
		</tr>
		<tr>
			<td>dane_A2</td>
			<td>dane_B2</td>
		</tr>
	</table>

Zgadza się?

0

Może napisałem to troszkę chaotycznie.
Chodzi mi właśnie o to co napisał użytkownik wyżej

0

W takim razie musisz stworzyć tablicę wynikową, gdzie każdy element tej tablicy to będzie tablica podelementów tablic A i B.

Array
(
	Array
	(
	    "daneA" => dane_A1
	    "daneB" => dane_B1
	)
	Array
	(
	    "daneA" => dane_A2
	    "daneB" => dane_B2
	)
)

Jeżeli tablice A i B mają taką samą długość to możesz zrobić to np. tak:

$daneA = array("daneA1", "daneA2");
$daneB = array("daneB1", "daneB2");

$resultArr = array();

for ($i = 0; $i < count($daneA) ; $i++) { 
	$resultArr[] = array(
		"daneA" => $daneA[$i],
		"daneB" => $daneB[$i]
	);
}

print_r($resultArr);
Array
(
    [0] => Array
        (
            [daneA] => daneA1
            [daneB] => daneB1
        )

    [1] => Array
        (
            [daneA] => daneA2
            [daneB] => daneB2
        )

)
// Możliwe, że są jakieś funkcje to ułatwiające

Dzięki temu możesz zrobić coś takieg:

<?php foreach ($resultArr as $row) : ?>
	<tr>
		<td><?php echo $row['daneA']; ?></td>
		<td><?php echo $row['daneB']; ?></td>
	</tr>
<? endforeach; ?>
0

Dzięki za odpowiedź.
O coś takiego właśnie mi chodziło.
Chyba, że ktoś podpowie jak to jeszcze zrobić inaczej bądź gotowymi funkcjami.

0

Nie musisz tworzyć osobnej tablicy. Jeśli obydwie mają taką samą ilość elementów to wystarczy zwykłym forem przelecieć.
Funkcje związane z tablicami, do przeglądnięcia: http://php.net/manual/en/ref.array.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1