Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] eliminar los nulos en arreglo

Estas en el tema de eliminar los nulos en arreglo en el foro de PHP en Foros del Web. Hola, agradezco de antemano su ayuda tengo una arreglo asi: arreglo=Array ( [0] => Array ( [MTIC_PROD_CODE] => 1048 ) [1] => Array ( [MTIC_PROD_CODE] ...
  #1 (permalink)  
Antiguo 27/09/2013, 13:01
Avatar de perla_marina  
Fecha de Ingreso: mayo-2013
Mensajes: 31
Antigüedad: 10 años, 11 meses
Puntos: 2
eliminar los nulos en arreglo

Hola, agradezco de antemano su ayuda

tengo una arreglo asi:

arreglo=Array
(
[0] => Array
(
[MTIC_PROD_CODE] => 1048
)

[1] => Array
(
[MTIC_PROD_CODE] =>
)

[2] => Array
(
[MTIC_PROD_CODE] => 1048-T1
)

[3] => Array
(
[MTIC_PROD_CODE] =>
)

[4] => Array
(
[MTIC_PROD_CODE] => 1054
)
pero quiero eliminar donde no tenga valor, como la posicion 1 y 3

habia utilizado este codigo, pero no me funciona

Código PHP:
foreach($arreglo as $clave=>$valor)
{
   if(empty(
$valor))
     {
        unset(
$arr1[$clave]);
  }

alguna idea ?
  #2 (permalink)  
Antiguo 27/09/2013, 13:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar los nulos en arreglo

Deberías usar unset() sobre $arreglo y no sobre $arr1, ¿o de dónde sacas esa idea?

Además tienes un array de arrays, por lo cual la mejor solución sería iterar e ir creando un array con los valores que si están presentes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/09/2013, 13:17
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: eliminar los nulos en arreglo

Hola, empty() no funcionara como lo tienes. Es un array de array.

Código PHP:
foreach($arreglo as $clave=>$valor

   if(empty(
$valor[MTIC_PROD_CODE])) 
     { 
        unset(
$arreglo[$clave]); 
  } 

Saludos
  #4 (permalink)  
Antiguo 27/09/2013, 13:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar los nulos en arreglo

Erick_MD9, muy bueno tu código, sólo que MTIC_PROD_CODE no es una constante (?), por lo cual deberías colocarla como string entre comillas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/09/2013, 13:25
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: eliminar los nulos en arreglo

Tienes Razón, Asumi que lo es, ya que ella lo tiene así. Saludos
  #6 (permalink)  
Antiguo 27/09/2013, 13:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar los nulos en arreglo

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Tienes Razón, Asumi que lo es, ya que ella lo tiene así. Saludos
Bueno, la representación de claves usando print_r() es la que te da ese formato, sin comillas.

No es bueno asumir.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 27/09/2013, 13:56
Avatar de perla_marina  
Fecha de Ingreso: mayo-2013
Mensajes: 31
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: eliminar los nulos en arreglo

Cita:
Iniciado por pateketrueke Ver Mensaje
Deberías usar unset() sobre $arreglo y no sobre $arr1, ¿o de dónde sacas esa idea?

Además tienes un array de arrays, por lo cual la mejor solución sería iterar e ir creando un array con los valores que si están presentes.
ya me salio jejejej

me faltaba especificar el nombre del campo jejej

foreach($arr1 as $clave=>$valor){
if(empty($valor['MTIC_PROD_CODE'])) unset($arr1[$clave]);
}

ya solo me falta eliminar los repetidos jejej


gracias por tu ayuda
  #8 (permalink)  
Antiguo 27/09/2013, 14:04
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: eliminar los nulos en arreglo

Puedes usar array_unique().

Saludos
  #9 (permalink)  
Antiguo 27/09/2013, 14:05
Avatar de perla_marina  
Fecha de Ingreso: mayo-2013
Mensajes: 31
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: eliminar los nulos en arreglo

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Hola, empty() no funcionara como lo tienes. Es un array de array.

Código PHP:
foreach($arreglo as $clave=>$valor

   if(empty(
$valor[MTIC_PROD_CODE])) 
     { 
        unset(
$arreglo[$clave]); 
  } 

Saludos
Muchas gracias, efectivamente me faltaba poner MTIC_PROD_CODE
  #10 (permalink)  
Antiguo 27/09/2013, 14:09
Avatar de perla_marina  
Fecha de Ingreso: mayo-2013
Mensajes: 31
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: eliminar los nulos en arreglo

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Puedes usar array_unique().

Saludos
Erick probe poniendo array_unique

pero me borro todos jeje solo me dejo el primero

Array
(
[0] => Array
(
[MTIC_PROD_CODE] => 1048
)

)
  #11 (permalink)  
Antiguo 27/09/2013, 14:11
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: eliminar los nulos en arreglo

Tienes que hacerlo dentro del primer array, ya que tienes arrays de array.

Saludos

Etiquetas: arreglos, nulos
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 07:21.