Autor | Zpráva | ||
---|---|---|---|
Han Profil |
#1 · Zasláno: 25. 3. 2012, 18:50:10
Zdravím, s poľami nepracujem dlho, prakticky som sa vo svojom učení PHP k nim dostal pred dvoma dňami a mám istú otázku.. Mám multidimenzionálne pole $a. Doň priradím nejaké hodnoty ako
$a[0][0]= "jednajedna"; $a[0][1]="jednadva"; $a[0][2]="jednatri"; $a[1][0]="dvajedna"; $a[1][1]="dvadva"; $a[1][2]="dvatri"; A potreboval by som toto pole postupne vypísať takým spôsobom, aby robilo toto: Najprv sa vypíše $a[0][0], potom $a[1][0] až do $a[n][0], ak už nie sú ďalšie [n], tak vypíše $a[0][1], potom $a[1][1] atď., až pokým sa nevypíše celé pole. Jednoducho, nejde mi o to postupne vypisovať prvý index [0] a jeho hodnoty zaradaom, potom druhý index [1] atď. ale tieto hodnoty medzi sebou premiešavať. Snáď niekto porozumel môjmu neodbornému vyjadrovaniu.. Takže, akú konštrukciu by som na toto mohol použiť? Ďakujem |
||
panther Profil |
Han:
<?php $a[0][0] = "jednajedna"; $a[0][1] = "jednadva"; $a[0][2] = "jednatri"; $a[1][0] = "dvajedna"; $a[1][1] = "dvadva"; $a[1][2] = "dvatri"; foreach ($a as $key1 => $array) { foreach ($array as $key2 => $value) { echo 'a[' . $key1 . '][' . $key2 . ']: ' . $value . '<br>'; } } ?> ↓ Pardon, špatně jsem četl. Myslel jsem, že nevíš, jak vypsat vícerozměrné pole. |
||
Han Profil |
Ehm, čo to má robiť? pretože mne to vypisuje to isté ako predtým, čiže
a[0][0]: jednajedna a[0][1]: jednadva a[0][2]: jednatri a[1][0]: dvajedna a[1][1]: dvadva a[1][2]: dvatri a potreboval by som aby to vypísalo a[0][0]: jednajedna a[1][0]: dvajedna a[0][1]: jednadva a[1][1]: dvadva a[0][2]: jednatri a[1][2]: dvatri Vypísať viacrozmerné pole som sa naučil asi tak 11 minút pred vytvorením témy ;) |
||
panther Profil |
takto?
$count_array_1 = count($a); $count_array_2 = count($a[0]); for ($i = 0; $i < $count_array_2; $i++) { for ($j = 0; $j < $count_array_1; $j++) { echo 'a[' . $j . '][' . $i . ']: ' . $a[$j][$i] . '<br>'; } } Ještě jsem prohodil indexy v echu, přepsal jsem se. Doplním, že počítám s variantou, kdy budou všechna pole obsahovat stejný počet prvků. Jinak by sis musel zjistit, které pole obsahuje nejvíce prvků ($count_array_2) a uvnitř cyklu testovat existenci daného klíče, tedy isset .
|
||
Han Profil |
Inak sa to vypisuje stále štýlom a[0][0]: jednajedna a[0][1]: jednadva a[0][2]: jednatri a[1][0]: dvajedna a[1][1]: dvadva a[1][2]: dvatri a[0][0]: jednajedna a[1][0]: dvajedna a[2][0]: trijedna a[0][1]: jednadva a[1][1]: dvadva a[2][1]: tridva a[0][2]: jednatri a[1][2]: dvatri a[2][2]: tritri |
||
panther Profil |
#6 · Zasláno: 25. 3. 2012, 19:34:43
Han:
„neznámym spôsobom sa mi to zle okopírovalo alebo niečo“ spíše jsem to ještě opravoval... :-) |
||
Han Profil |
$count_array_2 = count($a[0]); tak, ako by som to prerobil, keby bol prvým indexom poľa nejaký string a nie číslo? Teraz mi to píše undefined offset 0.Spravím to inak.. Takže problém vyriešený :) ďakujem |
||
Časová prodleva: 12 let
|
0