Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z usuwaniem z tablicy
Forum PHP.pl > Forum > PHP
Kinool
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 :|
AcidBurnt
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]
baczek
ja proponuje tak:

[php:1:9147ba6c1f]<?php

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

?>[/php:1:9147ba6c1f]
Kinool
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
rzseattle
Mozesz sobie zrobic funkcje usuwajaca ktora po unset przeleci obie tablice w foreach i zwuci nowa tablice bez brakujacych indeksow
Kinool
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
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.