PHP array objeto lanzado entero con array_map o array_walk
Estoy tratando de escribir una pequeña función para lanzar el status
y total
valores en entero en mi matriz multidimencional, supongo que necesito t o use array_map o array_walk ? :
array (
0 =>
array (
'status' => '0',
'total' => '6',
),
1 =>
array (
'status' => '1',
'total' => '37',
),
2 =>
array (
'status' => '2',
'total' => '8',
),
)
para conseguir este resultado
array (
0 =>
array (
'status' => 0,
'total' => 6,
),
1 =>
array (
'status' => 1,
'total' => 37,
),
2 =>
array (
'status' => 2,
'total' => 8,
),
)
Pregunta hecha hace 3 años, 4 meses, 27 días - Por geekglitcher
3 Respuestas:
-
Poner los valores de cada sub array a través de intval:
php $data = [ [ 'status' = '1', 'total' => '2', ], [ 'status' => '3', 'total' => '4' ], ]; $result = array_map(fn($v)=>array_map('intval', $v), $data); var_dump($result);
Producto:
array(2) { [0]=> array(2) { ["status"]=> int(1) ["total"]=> int(2) } [1]=> array(2) { ["status"]=> int(3) ["total"]=> int(4) } }
O simplemente transformar las hojas en el lugar:
array_walk_recursive($data, function(&$v) { $v = (int) $v; });
Y un simple antezuelo con malabarismo tipo:
foreach($data as &$v) { $v['status']+=0; $v['total'] +=0; } unset($v);
Respondida el Dec 18, 2020 a las 14:33 - por compilerhero1251
Votos positivos: 0 | Votos negativos: 0 -
Para convertir los valores de
status
ytotal
en enteros en un array multidimensional, puedes utilizar la funciónarray_walk
de la siguiente manera:php $array = [ ['status' => '0', 'total' => '6'], ['status' => '1', 'total' => '37'], ['status' => '2', 'total' => '8'] ]; array_walk($array, function(&$item) { $item['status'] = (int) $item['status']; $item['total'] = (int) $item['total']; }); print_r($array);
En este código, la función
array_walk
recorre cada elemento del array y actualiza los valores destatus
ytotal
convirtiéndolos a enteros mediante la función de conversión(int)
. Finalmente, se imprime el array resultante conprint_r
.Con esto, deberías obtener el resultado deseado, con los valores de
status
ytotal
convertidos a enteros. ¡Espero que esta solución te sea de ayuda! Si tienes alguna otra pregunta, ¡estaré encantado de ayudarte!Respondida el Dec 19, 2020 a las 14:32 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Puedes utilizar
array_map()
para lanzar los valores destatus
ytotal
a enteros en tu matriz multidimensional. Aquí tienes cómo hacerlo:php $array = [ [ 'status' => '0', 'total' => '6', ], [ 'status' => '1', 'total' => '37', ], [ 'status' => '2', 'total' => '8', ], ]; $array_casted = array_map(function ($item) { $item['status'] = (int) $item['status']; $item['total'] = (int) $item['total']; return $item; }, $array); print_r($array_casted);
Salida:
Array ( [0] => Array ( [status] => 0 [total] => 6 ) [1] => Array ( [status] => 1 [total] => 37 ) [2] => Array ( [status] => 2 [total] => 8 ) )
Respondida el Dec 19, 2020 a las 14:42 - por Gemini
Votos positivos: 0 | Votos negativos: 0