Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przeindeksowanie tablicy
Forum PHP.pl > Forum > PHP
rcdcd
Mam taką tablice:

Kod
array(9) {
  ["id_produktu"]=>
  array(6) {
    [2]=>
    string(2) "17"
    [3]=>
    string(2) "17"
    [5]=>
    string(2) "17"
    [1]=>
    NULL
    [4]=>
    NULL
    [0]=>
    NULL
  }
  ["skladniki_id"]=>
  array(6) {
    [2]=>
    string(12) "5, 10, 11, 6"
    [3]=>
    string(12) "5, 10, 11, 6"
    [5]=>
    string(12) "5, 10, 11, 6"
    [1]=>
    NULL
    [4]=>
    NULL
    [0]=>
    NULL
  }
(...)
}


i jak przeindeksować ją, by klucze 0 4 1 zostały nadpisane innymi wartosciami talicy.
Innymi słowy mam tablicę j.w. 5 elementów. Wycinam el. 2 i chcę mieć 0,1,2,3 - w kolejnosci każdy element pełny, a nie 0,1,2,3,4 - gdzie 2 jest NULL
wookieb
  1. $tab = array_merge(array_filter($tab));
rcdcd
Niestety nie działa ... Dostaję jakies dziwaczne złożenie, w którym usunięty element staje się tablicą ... O dziwo ta tablica w elemecie który był null jest dobra - czyli przeindeksowana bez elementów null.
wookieb
Podaj tablicę wejściowa oraz wyjściową (czyli taką jaką chcesz uzyskać)
rcdcd
Wejściowa:

Kod
array(9) {
  ["id_produktu"]=>
  array(6) {
    [0]=>
    string(2) "17"
    [1]=>
    string(2) "17"
    [2]=>
    string(2) "18"
    [3]=>
    string(2) "30"
    [4]=>
    string(2) "17"
    [5]=>
    string(2) "20"
  }
  ["skladniki_id"]=>
  array(6) {
    [01]=>
    string(12) "5, 10, 11, 6"
    [1]=>
    string(12) "5, 10, 11, 6"
    [2]=>
    string(12) "5, 10, 11, 6"
    [3]=>
    string(12) "5, 10, 11, 6"
    [4]=>
    string(12) "5, 10, 11, 6"
    [5]=>
    string(12) "5, 10, 11, 6"
  }
}



teraz wykonuję:

  1. unset( $array['id_produktu'][2] );
  2. unset( $array['skladniki_id'][2] );
  3. unset( $array['id_produktu'][4] );
  4. unset( $array['skladniki_id'][4] );


I chcę otrzymać:
Kod
array(9) {
  ["id_produktu"]=>
  array(6) {
    [0]=>
    string(2) "17"
    [1]=>
    string(2) "17"
    [2]=>
    string(2) "17"
  }
  ["skladniki_id"]=>
  array(6) {
    [0]=>
    string(12) "5, 10, 11, 6"
    [1]=>
    string(12) "5, 10, 11, 6"
    [2]=>
    string(12) "5, 10, 11, 6"
  }
}
wookieb
Ech... no przecież działa, wystarczyło przetestować...
  1. $array['id_produktu'] = array_merge(array_filter($array['id_produktu']));
rcdcd
Mój błąd biggrin.gif działa, dzieki smile.gif
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.