Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] tablice wielowymiarwe dziwne działanie array_push i array_shift
Forum PHP.pl > Forum > Przedszkole
rgrg2
Witam
Dlaczego w tym programie array_push i array_shift pokazuje błąd ?
A echo nr2 nie pokazuje liczby.

<?php

$kolumnaN = "ilosc";
$LineArray = array();
// $ilosc = array();
$nr=4;

$LineArray[$kolumnaN][0]=$nr;
array_push ($LineArray[$kolumnaN][1], $nr);
array_push ($LineArray[$kolumnaN][2], $nr);
$nr2 = array_shift ($LineArray[$kolumnaN][1]);
echo "<br>nr2: $nr2";

echo '<pre>LineArray: ';
print_r($LineArray);
echo '</pre>';

?>
Kshyhoo
Crossposting z 229854.
Popraw wątek, pomoc w pierwszej linii mojej sygnatury. Cztery lata na Forum, więc powinieneś już znać zasady.
vonski
array_push() przyjmuje w pierwszym parametrze tablicę, podczas gdy to: $LineArray[$kolumnaN][1] - to jest null. PHP pozwala na dużą niedbałość, ale bez przesady smile.gif Musisz jawnie zdefiniować tę tablicę. Poza tym, podwójne wywołanie array_push() żeby dodać po jednym elemencie do tej samej tablicy mija się z celem, można to zrobić jednym wywołaniem:

  1. $kolumnaN = "ilosc";
  2. $LineArray = array();
  3. // $ilosc = array();
  4. $nr=4;
  5.  
  6. // tu definujesz tablicę
  7. $LineArray[$kolumnaN] = array();
  8.  
  9. // wpychasz 3 (lub więcej) elementów za jednym zamachem
  10. array_push ($LineArray[$kolumnaN], $nr, $nr, $nr);
  11.  
  12. $nr2 = array_shift ($LineArray[$kolumnaN]);
  13. echo "<br>nr2: $nr2";
  14.  
  15. echo '<pre>LineArray: ';
  16. print_r($LineArray);
  17. echo '</pre>';
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.