![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Jak zrobić aby usunąć z tablicy np. wszystkie puste wartości. Obojętnie ile ich jest i w jakim miejscu tablicy??
-------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jesli dobrze zrozumialem chcesz usuwac "puste" wartosci czyli '',"",0 i false, tak? Jesli inaczej, to sobie zmodyfikuj. Uwaga. Ta funkcja nie zachowuje kolejnosci kluczy wiec potem najlepiej iterowac tablice przez foreach()
[php:1:86a1cf3097]<?php $x=Array('x','','','','y'); foreach($x as $k=>$v) if (!$v) unset($x[$k]); print_r($x); ?>[/php:1:86a1cf3097] |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
A nie da sie prościej??
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
[manual:8a149b3f95]array_walk()[/manual:8a149b3f95] ?
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Co to znaczy prosciej? Niezaleznie jaka konstrukcje zbudujesz fizycznie trzeba wykonac ta sama czynnosc: przejsc po kazdym elemencie tablicy, sprawdzic jego zawartosc, jesli rzutowana na boolean jest FALSE usunac ten element. tak? Mozesz zrobic do tego funkcje (tak bedzie ladniej z indeksami:
[php:1:af930edcef]<?php function clearArray ($arr, $saveIndex=false) { $temp = Array(); foreach($arr as $k=>$v) { if((bool)$v) $saveIndex ? $temp[$k]=$v : $temp[]=$k; } return $temp; } ?>[/php:1:af930edcef] I to jest ta sama roba, ktora mozesz opisac zupelnie inaczej, ale dzialac bedzie tak samo. (oczywiscie moj saveIndex ma na celu rozbudowe, jesli nie potrzebujesz go mozna krocej: [php:1:af930edcef]<?php function clearArray (&$arr) { foreach($arr as $k=>$v) { if(!(bool)$v) unset($arr[$k]); } } ?>[/php:1:af930edcef] co do array_walk - ja o czyms nie wiem, czy on nadal wymaga (idiotycznie zreszta) jako drugi parametr string okreslajacy globalna nazwe funkcji? (zamiast jej identyfikatora, albo wrecz jej samej - poprzez anonymous func) ? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Co do tego prościej...
Poprostu myślałem, że jest taka funkcja wbudowana w php ![]() array_walk() by działało ale (from manual) Cytat Użytkownicy nie mogą zmieniać samej tablicy z wnętrza funkcji zwrotnej, to jest dodawać/usuwać elementy, usuwać tablicę na której jest wywoływana funkcja array_walk(). Jeśli ta tablica zostanie zmieniona, funkcja może się zachowywać w sposób nieokreślony.
Ale jeżeli nie ma to dorzucę sobie ta Twoją na stałe do pozostałych funkcji, bo jest bardzo użyteczna ![]() (taka mała rzecz a cieszy ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2025 - 23:32 |