| 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: 14 let
|
|||
0