ďťż

[PHP] Problem z tablicami asocjacyjnymi

       

Podstrony


telcocafe

$info_box_contents[] = array('text' => '<table border="0" cellspacing="0" cellpadding="2"><tr><td class="infoBoxContents"><a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, 'products_id=' . $HTTP_GET_VARS['products_id']) . '">' . tep_image(DIR_WS_IMAGES . 'box_write_review.gif', IMAGE_BUTTON_WRITE_REVIEW) . '</a></td><td class="infoBoxContents"><a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, 'products_id=' . $HTTP_GET_VARS['products_id']) . '">' . BOX_REVIEWS_WRITE_REVIEW .'</a></td></tr></table>');

Chcąc wyswietlic zawartość tej tablicy wpisuje echo $info_box_contents['text']; no i [ciach!] bo nic się nie pojawia. <_< Skasowałem [] za zmienną $info_box_contents i to działa niby. Tylko właśnie chce się dowiedzieć co to jest to [] za zmienną. Czy to ma jakieś znaczenie. Bo jeśli nie to fajnie i tak zostawię, a jeśli ma to napiszcie co to oznacza i po co to jest. Z góry dzięki.
Użytkownik Mały84 edytował ten post 09 marzec 2007, 20:51


nie bawiłem się w tablice asocjacyjne, ale nie powinno byc tak:
echo $info_box_contents[]['text']

Te nawiasy kwadratowe za nazwą zmiennej, która jest tablicą, dodają do tej tablicy nowy element i "w nim" wpisują to, co jest po znaku przypisania (=) ;)
Mam nadzieję, że rozumiesz :)

@up: nie dostrzegłeś pytania chyba :P
Użytkownik pbnan edytował ten post 09 marzec 2007, 17:10
Sposób Petermechanic'a nie działa bo sprawdzałem. A to, że to jest tablica to ja wiem tylko ja w takim razie to wyświetlić? Jak skasowałem te [] i wyświetliłem to niby ok, ale to jest sklep na e-commerce i nie chce żeby się później coś wykrzaczyło. Dlatego pytam co to oznacza. Z tego co mi wiadomo to sama $info_box_contents = array (...); jest juz tablicą. Więc o co tu biega?



Przecież Ci napisałem!
Normalnie tworzysz tablicę tym sposobem:
$arr = array('nobody');
Natomiast dopiero po takim wierszu jest możliwa konstrukcja:
$arr[] = 'pbnan';
Co ona oznacza? Że dodajesz nowy element do tablicy i do niego przypisujesz wartość 'pbnan'. Zatem teraz tablica $arr ma wartości 0 => 'nobody' oraz 1 => 'pbnan' (odpowiednio $arr[0] i $arr[1]). Rozumiesz?
Użytkownik pbnan edytował ten post 09 marzec 2007, 17:27
@Mały84:
1. daj edita pierwszego postu i zamień CODEBOX na CODE :P
Sam zobaczysz różnicę ;)

2. Man, może poprostu wylistujesz wszystko z Twojej tablicy, i zobaczysz, co siedzi :P
foreach ($info_box_contents as $k => $v) echo "$k => $v<br />\r\n";
Użytkownik DJ_ProG edytował ten post 09 marzec 2007, 20:20
Nie dawaj [] po nazwie zmiennych, bo dodaje to nowy element, w tym przypadku tablicę do tablicy czyli powstaje tablica wielowymiarowa. Żeby się teraz odwołać musisz zrobić $zmienna[0]['wartość']. Po prostu nie dodawaj [] po nazwie przy dodawaniu elementów


2. Man, może poprostu wylistujesz wszystko z Twojej tablicy, i zobaczysz, co siedzi :P
foreach ($info_box_contents as $k => $v) echo "$k => $v<br />\r\n";


Od tego jest var_dump() tudzież print_r()

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.