Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] usuwanie/edycja tablicy
Forum PHP.pl > Forum > PHP
Babu
Kod
    $t = "
    a:b:c:1;
    d:d:e:4;
    z:e:x:2
    ";



to jest moja tablica, chcialbym z niej usunac wszystko gdzie jest np. 4 jako ostatni czlon

wynik:

Kod
    $t = "
    a:b:c:1;
    z:e:x:2
    ";
xpil
"usuwanie" piszemy przez dwa "u", zapamiętaj na przyszłość...

A tu prosty kod:

  1. <?php
  2. $t = "
  3. a:b:c:1;
  4. d:d:e:4;
  5. z:e:x:2
  6. ";
  7. $u = explode(';', $t);
  8. $t=array();
  9. foreach($u as $v) {
  10. $uu = explode(':', $v);
  11. if($uu[sizeof($uu)-1]!='4') {$t[]=$v;}
  12. }
  13. $t = implode(';', $t);
  14. ?>


Pewnie dałoby się ładniej przez array_filter...

--
Piotr Lipski
Babu
Dzieki, a jesli liczba wedlug ktorej ma byc wpis usuniety znajduje
sie na poczatku tu analogicznie bedzie:

Kod
if($uu[sizeof($uu)-4]!='4') {$t[]=$v;}



A jesli mam tablice:


Kod
$t = "
    1:b:G:d;
    4:d:G:d;
    8:e:N:d
    ";


chciałbym zmienic G na N gdzie na poczatku jest np. 4?
xpil
W ten sposób to możemy pisać w nieskończoność... Weźże opisz konkretnie swój problem ewentualnie rzuć okiem na www.php.net - tam jest rozpiska wszystkich funkcji. Ciebie interesują w tym przypadku funkcje operujące na tablicach (array) i łańcuchach (string), w szczególności explode(), implode(), sizeof().

Potrenuj sobie "na boku" działanie tych funkcji, jak zrozumiesz stojącą za nimi logikę, sam będziesz odpowiadał na swoje pytania.

--
Piotr Lipski
Babu
Juz opisuje dokładnie

Kod
$t = "
    1:b:G:d;
    4:d:G:d;
    8:e:N:d
    ";


Chciałbym zmienić G na N tam gdzie czwórka

pierw będzie exploda ";" aby to rozłożyć napewno a co dalej?
Darti
  1. <?php
  2. $t = "
  3. 1:b:G:d;
  4. 4:d:G:d;
  5. 8:e:N:d
  6. "; 
  7. $u = explode(';', $t);
  8. $t=array();
  9. foreach($u as $v) {
  10. $uu = explode(':', $v);
  11. if(($uu[0] == 4) && ($uu[2] == 'G')) {$uu[2] = 'N';}
  12. t[] = implode(':';$uu);
  13. }
  14. $t = implode(';', $t);
  15. ?>
Babu
A jak np. z całego arraya pobrac najwieksza liczbe:

Kod
$t = "
    a:b:G:9;
    f:d:G:8;
    g:e:N:11
    ";


Największa liczbe $t[3]
Darti
  1. <?php
  2. $t = "
  3. a:b:G:9;
  4. f:d:G:8;
  5. g:e:N:11
  6. "; 
  7. $u = explode(';', $t);
  8. $max = 'f*ck you';
  9. foreach($u as $v) {
  10. $uu = explode(':', $v);
  11. if(($max == 'f*ck you') || ($uu[3] > $max)) {$max = $uu[3];}
  12. }
  13. echo 'najwieksza liczba to: ' . $max;
  14. ?>
Babu
Cytat
najwieksza liczba to: 9
tongue.gif

Wydaje mi ze powinno wyjsc 11, sprobuje sie tym pobawic bo cos mi nie pasuje
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.