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