Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Usuwanie tablicy z tablicy
Mefisto_87
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 24.11.2008

Ostrzeżenie: (0%)
-----


Mam tablice wielowymiarową ,przeczesałem php.manual i znalazłem tylko array_slice i funkcje unset..jednak czy to na pewno pozwoli mi usunąć tablice z tablicy.. bo nie za bardzo rozumiem na czym polegają te funkcje.. w manualu jest taki przykład..


  1. $wejscie = array ("a", "b", "c", "d", "e");
  2.  
  3. $wyjscie = array_slice ($wejscie, 2); // zwraca "c", "d" i "e"
  4. $wyjscie = array_slice ($wejscie, -2, 1); // zwraca "d"
  5. $wyjscie = array_slice ($wejscie, 0, 3); // zwraca "a", "b" i "c"


chodzi mi o drugi argument slice tzn na jakiej zasadzie on działa??
2- to wycina 2 pierwsze wartości?
i nie rozumiem reszty prosze o podanie jakiegos przykładu jeśli można

Ten post edytował Mefisto_87 20.11.2009, 21:29:57
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


A dokladnie jaki jest problem i pytanie.

Pokaz co chcesz osiagnac, wtedy bede w stanie ci pomoc.

Go to the top of the page
+Quote Post
Mefisto_87
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 24.11.2008

Ostrzeżenie: (0%)
-----


chcem usuwac konkretną tablice z tablicy pomaga mi przy tym funkcja unset.. bo jak wezme unset(tablica[0]) to usunie mi 1 tablice z tablicy.. problem w tym że wtedy klucze pozostałych tablic nie są liczone od 0 a chce osiągniąć coś takiego


$tablica=array(0 => tablica0, 1 =>tablica1, 2 =>tablica2 itd)

i po unset($tablica[0])

bede miał

$tablica=array(1 =>tablica1, 2 =>tablica2 itd)

a teraz jak zrobic żeby było

$tablica=array(0 =>tablica1, 1 =>tablica2 itd)
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Przeczytaj co piszą w manualu nt funkcji array_slice
Cytat
If offset is non-negative, the sequence will start at that offset in the array . If offset is negative, the sequence will start that far from the end of the array .

offset to ten drugi parametr.

Co do rozwiązania Twojego problemu to wystarczy użyć array_slice od 1-szego elementu tablicy:
  1. $tablica_nowa = array_slice($tablica_stara, 1);


edit:
chcem(IMG:style_emoticons/default/questionmark.gif) chcę

Ten post edytował vokiel 20.11.2009, 22:36:12
Go to the top of the page
+Quote Post
Mefisto_87
post
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 24.11.2008

Ostrzeżenie: (0%)
-----


Tak rozumiem potestowałem już wczoraj dobrze slice i ona nie daje mi rządanego rezultatu... pokazałem przykładowe usuniecie $tablica[0]..tylko w skrypcie będzie $tablica[$n] gdzie $n jest całkowicie losowe dlatego slice sie do tego nie nada.. funkcja unset usunie mi to co chce ale wtedy klucze nie są od 0
Go to the top of the page
+Quote Post
vokiel
post
Post #6





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


A będziesz znał to n? I czy będziesz chciał wycinać elementy tablicy od początku/końca, czy też ze środka?
Go to the top of the page
+Quote Post
Mefisto_87
post
Post #7





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 24.11.2008

Ostrzeżenie: (0%)
-----


tzn problem rozwiązałem już inaczej(przebudowałem sobie skrypt i w ogóle nie muszę z tego korzystać).. samego n nie będę znał bo wylosuje je skrypt i dlatego nie będę miał zielonego pojęcia jakie liczby wstawić by wyciąć odpowiedni index.. z tego też względu array_slice odpada bo musiałbym napisać x warunków żeby wszytko sprawdziły, bardziej przydała się funkcją unset() która usunie mi ten "n" idnex ,ale wtedy klucze nie będą liczyły się od 0 do końca tablicy..
jak już pisałem problem rozwiązałem inaczej ale także znalazłem sposób na poprawę tego można po prostu utworzyć nową tablicę z indexami od 0 do x i za pomocą array_combine połączyć ją z tamtą tablicą.. temat do zamknięcia dziękuje wszystkim którzy chcieli pomóc

Ten post edytował Mefisto_87 22.11.2009, 20:16:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 10:18