| Autor | Zpráva | ||
|---|---|---|---|
| MONTYCEK Profil |
#1 · Zasláno: 16. 6. 2015, 10:28:29
Zdravím, poradil by mi někdo jak převést hodnoty v poli na
int pokud jsou tam zapsaná jako string, ale jedná se o čísla?
Jedná se o vícerozměrné pole. Díky |
||
| Radek9 Profil |
#2 · Zasláno: 16. 6. 2015, 10:37:15
MONTYCEK:
Neznám tu strukturu pole (která taky možná bude důležitá), ale obecně nějak takto: array_walk_recursive($array, function (&$item) {
$item = (int)$item;
});Pokud používáš starší verzi PHP, která nepodporuje anonymní funkce, tak je nutné ji pojmenovat a potom předat její název. |
||
| MONTYCEK Profil |
#3 · Zasláno: 16. 6. 2015, 10:42:22
Radek9:
Díky funguje to jak má, ale přesně toto jsem před chvílí zkoušel a nic to nedělalo, tak jsem tam měl asi nějakou chybu. |
||
| Jan Tvrdík Profil |
#4 · Zasláno: 16. 6. 2015, 15:34:36
Arraymap + intval
|
||
| MONTYCEK Profil |
#5 · Zasláno: 16. 6. 2015, 15:37:58
Jan Tvrdík:
Návod kde byla přesně ta kombinace arraymap + intval jsem našel v několika verzích, ale ani jedna nefungovala na tomto poli.
|
||
| Jan Tvrdík Profil |
MONTYCEK:
A jak vypadá to pole? Tohle by mělo normálně fungovat: array_map('intval', ['1', '2', 'key' => '3']);Aha, nevšiml jsem si, že je to vícerozměrné pole. V tom případě je odpověď od Radek9 skutečně optimální řešení a array_map nejde jednoduše použít.
|
||
| MONTYCEK Profil |
#7 · Zasláno: 16. 6. 2015, 21:08:36
Jan Tvrdík:
no našel jsem to podobně zapsané ješte v kombinaci s jednou funkcí která byla vložena do toho druhého parametru array_map což prý mělo fungovat pro vicerozměrné pole ale nefungovalo to. |
||
| Jan Tvrdík Profil |
#8 · Zasláno: 16. 6. 2015, 21:13:30
MONTYCEK:
Spíš pro zajímavost, řešení s array_map by mohlo vypadat třeba takto:
$cb = function ($val) use (& $cb) {
return is_array($val) ? array_map($cb, $val) : intval($val);
};
$cb(['1', '2' => , 'key' => '3', 'arr' => ['1', '2', 'key' => '3']]); |
||
|
Časová prodleva: 11 let
|
|||
0