PHP, array ispis

Dakle, imam array s nekim brojevima i sada bi to trebao formatirati kao na slici (ovaj dio gdje su brojke od 1 do 15). Treba ispod označiti koji su brojevi u array formatu.

Mučim se za sada, probao sam sve što mi je palo na pamet. Uglavnom dobijem da mi array ispiše otpočetka od 1 do 4 ali ne želim to, ispis bi trebao biti da stavi X ispod svog broja.

S ovim kodom dobijem da mi ih ispiše na početku.

<?php
$array = array(3, 6, 7, 12);
?>
<table border="1">
	<tr>
		<td>Redni broj dana</td>
		<?php
		for ($y = 1; $y <= 15; $y++) {
			echo "<td>" . $y . "</td>";
		}
		?>
	</tr>
	<tr>
		<td></td>
		<?php
		foreach ($array as $i => $value) {
			$ispis = $array[$i];
			echo "<td>" . $ispis . "</td>";
		}
		?>
	</tr>
</table>

Pa zavrti ponovno petlju s danima i onda provjeri da li se trenutna vrijednost u petlji nalazi u nizu s brojevima.

Ako ispravim foreach da izgleda ovako

	<?php
	foreach ($array as $i => $value) {
		$ispis = $array[$i];
		for ($yz = 1; $yz <= $ispis; $yz++) {
			if ($ispis == $yz) {
				echo "<td>" . $ispis . "</td>";
			} else {
				echo "<td>" . " " . "</td>";
			}
		}
	}
	?>

Onda dobijem kao rezultat ovo
Screenshot_2018-07-02%20Screenshot

Sigurno je rješenje jednostavno ali ga ne vidim…

Pojednostavni si to, ovako nešto:

<?php 

$days    = range( 1, 15 );
$numbers = [ 3, 6, 7, 12 ];

?>

<table border="1">
    <tr>
        <?php foreach( $days as $day ): ?>
            <td><?php echo $day; ?></td>
        <?php endforeach; ?>
    </tr>
    <tr>
        <?php foreach( $days as $day ): ?>
            <td><?php if ( in_array( $day, $numbers ) ) echo 'x'; ?></td>
        <?php endforeach; ?>
    </tr>
</table>
1 Like

Hvala puno.

Mada sam došao do toga s drugim rješenjem maloprije s time da ne napravi zadnji dio.

Zadatak za školu? :slight_smile:

Ne. Pokušavam napraviti da mi onači brojeve za loto… evidencija… :smiley:

Raspored voznog parka. X će kasnije biti zamijenjen s bojom za drugog vozača :slight_smile:

1 Like