Foros del Web » Programando para Internet » PHP »

pasar todo array de array a int

Estas en el tema de pasar todo array de array a int en el foro de PHP en Foros del Web. hola miren tengo un array de array , y lo quiero pasar a enteros a todos sus elementos, miren masmoenos asi es la estructura del ...
  #1 (permalink)  
Antiguo 22/07/2013, 09:33
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 1 mes
Puntos: 3
pasar todo array de array a int

hola miren tengo un array de array , y lo quiero pasar a enteros a todos sus elementos, miren masmoenos asi es la estructura del array..


Código PHP:
Debug #1 of 1: array(7) {
  
[0]=>
  array(
2) {
    [
"category_id"]=>
    
string(1"1"
    
["cant"]=>
    
string(1"2"
  
}
  [
1]=>
  array(
2) {
    [
"category_id"]=>
    
string(2"19"
    
["cant"]=>
    
string(1"1"
  
}
  [
2]=>
  array(
2) {
    [
"category_id"]=>
    
string(2"29"
    
["cant"]=>
    
string(1"1"
  
}
  [
3]=>
  array(
2) {
    [
"category_id"]=>
    
string(2"33"
    
["cant"]=>
    
string(1"1"
  
}
  [
4]=>
  array(
2) {
    [
"category_id"]=>
    
string(2"53"
    
["cant"]=>
    
string(1"1"
  
}
  [
5]=>
  array(
2) {
    [
"category_id"]=> 
  #2 (permalink)  
Antiguo 22/07/2013, 09:55
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: pasar todo array de array a int

mmm ok ya vimos la estructura pero no nos das mucha información de lo que has intentado hacer
  #3 (permalink)  
Antiguo 22/07/2013, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: pasar todo array de array a int

Puedes usar array_map.

Saludos.
  #4 (permalink)  
Antiguo 22/07/2013, 10:12
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: pasar todo array de array a int

Como dice @Gatorv seria asi:

Código PHP:
Ver original
  1. // Asumimos tu array se llama $arr y luego recojes todo en el nuevo llamado $new
  2.  
  3. $new = array();
  4.  
  5. foreach ($arr as $key => $reg){
  6.     $new[] = array_map(function($s) { return (int) $s; }, $reg );
  7. }
  8.  
  9. var_dump($new);

O se puede con mas trabajo hacer asi:

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Conversion:
  4. $new = array();
  5.  
  6. foreach ($arr as $key => $reg){
  7.     $new [$key] = array();
  8.     foreach ($reg as $key_reg => $val){            
  9.         $new [$key][$key_reg] = (int) $val;
  10.     }  
  11. }
__________________
Salu2!

Última edición por Italico76; 22/07/2013 a las 10:28
  #5 (permalink)  
Antiguo 22/07/2013, 10:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: pasar todo array de array a int

@Italico76,

Código PHP:
Ver original
  1. $func = function($val) {
  2.      return (int) $val;
  3. };
  4.  
  5. array_map($func, $array);
  #6 (permalink)  
Antiguo 22/07/2013, 10:31
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: pasar todo array de array a int

@GatorV

Gracias probe como dices pero parece no ser recursiva

Intentalo!


PD: me sobro un "as $key" en el foreach()
__________________
Salu2!
  #7 (permalink)  
Antiguo 22/07/2013, 10:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: pasar todo array de array a int

¿a que te refieres con que parece no ser recursiva? Evidentemente no lo es, simplemente hace un cast de un valor...
  #8 (permalink)  
Antiguo 22/07/2013, 10:40
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: pasar todo array de array a int

Cita:
Iniciado por GatorV Ver Mensaje
¿a que te refieres con que parece no ser recursiva? Evidentemente no lo es, simplemente hace un cast de un valor...
Vale... te entendi que el script quedaba aun mas corto porque el array que se pide es bi-dimensional ... que no iba el foreach()

Disculpas y buena idea lo del array_map()
__________________
Salu2!

Etiquetas: int, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:51.