Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z usuwaniem z tablicy
Kinool
post 30.12.2003, 14:35:08
Post #1





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


mam 2 tablice np:
[php:1:4f99989622]<?php
$tab1[0]=1;
$tab1[1]=5;
$tab1[2]=2;
$tab1[3]=14;

$tab2[0]="aaa";
$tab2[1]="bb";
$tab2[2]="ccc";
$tab2[3]="ddd";
?>[/php:1:4f99989622]

i sa one ze soba powiazane tzn wartosci nie moge zminiac swoich indexow tzn wartosc 1 w tab1 musi byc polaczona z wartoscia "aaa" w tab2

teraz powiedzmy chce usunac sobie pola o indexie 3 w obydwu tabelach (rzeby zachowac "relacje") wiec robie:
[php:1:4f99989622]<?php
unset($tab1[3]);
unset($tab2[3]);
?>[/php:1:4f99989622]
no i wszystko jest cacy tzn usuwa sie i tablice sa bez pul o indexie 3
ale jak chce usunac cos ze srodka tablicy albo z poczatku to zaczynaja sie problemy, tzn wartosci zaczynaja zanikac (sa puste) i cala tablica sie rozsypuje!

jest moze jakas funkcja do sortowania indexow?? tzb cos takiego co sprawdza czy wartosc jest pusta i ja uswa?

moze jeszcze raz smile.gif
powiedzmy ze chcialbym usunac z tablic rekordy o indexie 2

i chcialbym zeby tablica wygladala tak:
[php:1:4f99989622]<?php
$tab1[0]=1;
$tab1[1]=5;
$tab1[2]=14;

$tab2[0]="aaa";
$tab2[1]="bb";
$tab2[2]="ddd";
?>[/php:1:4f99989622]

czyli index 3 robi sie indexem 2
kurka niewiem czy zrozumiecie o co mi chodzi :|
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
AcidBurnt
post 30.12.2003, 14:43:08
Post #2





Grupa: Zarejestrowani
Postów: 215
Pomógł: 1
Dołączył: 13.04.2003
Skąd: z ławki przed blokiem

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


moze zamiast usuwac zastap wartosc pustoscia?

[php:1:25526e5e11]<?php
tab['3']='';
?>[/php:1:25526e5e11]

po co ci 2 tabele nie prosciej bedzie tak:

[php:1:25526e5e11]<?php
tab['0']['1']['wartosc'];
?>[/php:1:25526e5e11]
Go to the top of the page
+Quote Post
baczek
post 30.12.2003, 14:45:24
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.12.2003

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


ja proponuje tak:

[php:1:9147ba6c1f]<?php

$tab = array("1" => "aaa", "2" => "bbb");

?>[/php:1:9147ba6c1f]


--------------------
Warsztat: Apache 1.3.26 | PHP 4.2.3 | MySQL 3.23.52-nt
GG: 6703766
Tlen: bb-baczek@tlen.pl
Go to the top of the page
+Quote Post
Kinool
post 30.12.2003, 14:56:44
Post #4





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


pusta wartosc nie wchodzi w gre bo przy listowaniu tez by byla, no chyba ze bym zrobil warunek i jej nie wyswietlal

nad tablica wielowymiarowa tez sie zastanawialem, ale jakos mnie nie przekonala sad.gif narazie mam pewien pomysl w glowie, moze cos z niego wyjdzie smile.gif
Go to the top of the page
+Quote Post
rzseattle
post 30.12.2003, 15:05:12
Post #5





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Mozesz sobie zrobic funkcje usuwajaca ktora po unset przeleci obie tablice w foreach i zwuci nowa tablice bez brakujacych indeksow


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
Kinool
post 30.12.2003, 15:08:40
Post #6





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


OK rozwiazalem to smile.gif

rozwiazanie jakie zastosowalem:
zamias robic unset() to rekordowi ktory chce usunac przypisuje wartosc "xxx" potem robie petle i sprawdzam czy rekodr posiada wartosc "xxx" jesli nie to przypisuje go do 2 tablicy (np $tab2) po sprawdzeniu wszystkich elementow tablica $tab2 posiada tylko te elementy ktore chce potem tylko

$tab1=$tab2; i po klopocie biggrin.gif

myslenie po szklance mleka daje efekty biggrin.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:41