Autor | Zpráva | ||
---|---|---|---|
jan98 Profil * |
#1 · Zasláno: 30. 4. 2011, 16:51:25
jak odstranit z array prazdny string ktery vypada takto: array(11) { [0]=> string(5) " " [1]=> string(34) ...
kdyz napisu neco takoveho tak to nefunguje: foreach($array as $key => $value) { if($value == " ") { // vyhledat hodnotu -> string(5) " " unset($array[$key]); // smazat klic kde je string(5) " " } } diky |
||
Tori Profil |
#2 · Zasláno: 30. 4. 2011, 17:12:05 · Upravil/a: Tori
jan98:
„array(11) { [0]=> string(5) " " [1]=> string(34) ... “ Řetězec který chcete vyhodit má pět bílých znaků, hledáte jeden. Dalo by se použít hledání bílých znaků pomocí regulárem, ale asi rychlejší varianta bude tohle: foreach ($array as $key=>$val) { $tmp = (int) $val; if ($tmp == 0 && is_string($val)) unset($array[$key]); } Opraveno podle [#4], překlep v názvu proměnné. |
||
jan98 Profil * |
#3 · Zasláno: 1. 5. 2011, 11:50:08
Díky, ale pořád mi to nehce smazat ty "prázdné" hodnoty.
Původně i v tom prvním postu jsem vyhledával 5-ti místnou hodnotu if($value == "(5 - míst)") .. //TEST: $array = array (" ","string"," ",0,1); foreach ($array as $key=>$value) { $tmp = (int) $val; if ($tmp == 0 && is_string($val)) unset($array[$key]); } var_dump($array); |
||
panther Profil |
#4 · Zasláno: 1. 5. 2011, 11:53:07
jan98:
v cyklu na ř. 5 máš proměnnou $value , v těle cyklu máš pak proměnnou $val .
|
||
Tori Profil |
#5 · Zasláno: 1. 5. 2011, 12:26:20
panther:
To byla chyba u mě, díky a janovi98 se omlouvám. |
||
jan98 Profil * |
#6 · Zasláno: 1. 5. 2011, 12:55:04
ano, toho už jsem si všiml že je tam špatná proměnná. Ale pokud použiju přímo kód od Toriho výsledek je:
array(2) { [3]=> int(0) [4]=> int(1) } odstraní to i ostatní hodnotu "string" (na druhém místě v ukázce) což samozřejmě nechci |
||
Tori Profil |
#7 · Zasláno: 1. 5. 2011, 13:33:07
Aha, opravdu to nefunguje,... nějak jsem si spletla dohromady (int) $string vs. (bool) $string. Nenapadá mě teď nic funkčního.
|
||
panther Profil |
#8 · Zasláno: 1. 5. 2011, 13:44:56 · Upravil/a: panther
jan98:
<?php $array = array (" ", "string", " ", 0, 1); foreach ($array as $key=>$value) { $val = trim($value); if (empty($val) and !is_numeric($value)) unset($array[$key]); } var_dump($array); // array(3) { [1]=> string(6) "string" [3]=> int(0) [4]=> int(1) } //pokud chces vyhodit i nulu, odmaz podminku is_numeric, nula neprojde skrze empty ?> |
||
Časová prodleva: 13 let
|
0