Foros del Web » Programando para Internet » PHP »

Crear array borrando valores cuando un valor es repetido

Estas en el tema de Crear array borrando valores cuando un valor es repetido en el foro de PHP en Foros del Web. Tengo este multi array con arrays dentro : $marray = array( array("id" => "1", "be_pro" => 6, "name" => "a1", "service" => 4a), array("id" => ...
  #1 (permalink)  
Antiguo 28/06/2012, 08:27
 
Fecha de Ingreso: mayo-2011
Mensajes: 25
Antigüedad: 13 años, 6 meses
Puntos: 1
Crear array borrando valores cuando un valor es repetido

Tengo este multi array con arrays dentro :
$marray = array(
array("id" => "1", "be_pro" => 6, "name" => "a1", "service" => 4a),
array("id" => "2", "be_pro" => 6, "name" => "a1", "service" => 4d),
array("id" => "3", "be_pro" => 4, "name" => "a4", "service" => 3d),
array("id" => "4", "be_pro" => 4, "name" => "a4", "service" => 3s),
array("id" => "6", "be_pro" => 4, "name" => "a4", "service" => 34),
array("id" => "8", "be_pro" => 3, "name" => "a3", "service" => 4r),
array("id" => "8", "be_pro" => 3, "name" => "a3", "service" => 4d)
);

Me gustaria coger "id", "be_pro" and "name" una vez y añadir "service" mas "service" del siguiente array( sin id, be pro , hombre) hasta que "be_pro" en el siguiente array sea diferente , si lo es , ponerlo en el siguiente nuevo array.

como puedo obtener esto?
array deseado:
$newmarray = array(
array("id" => "1", "be_pro" => 6, "name" => "a1", "service" => 4a, "service" => 4d),
array("id" => "3", "be_pro" => 4, "name" => "a4", "service" => 3d, "service" => 3s,"service" => 34),
array("id" => "8", "be_pro" => 3, "name" => "a3", "service" => 4r, "service" => 4d)
  #2 (permalink)  
Antiguo 28/06/2012, 08:35
Avatar de Sotelio  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Chile
Mensajes: 68
Antigüedad: 13 años, 6 meses
Puntos: 21
Respuesta: Crear array borrando valores cuando un valor es repetido

Hola,

No podrás crear un array del tipo:
array("id" => "1", "be_pro" => 6, "name" => "a1", "service" => 4a, "service" => 4d)

Porque los valores "id", "be_pro", "name", "service" son los índices, y si un índice se repite, por ejemplo:

$a["service"] = '4a';
$a["service"] = '4d';

La segunda asignación sobreescribe a la primera.

Entonces, lo que deberías hacer es tener un campo "service" así:
$a["service"] = array('4a', '4d', etc.);


Saludos
@sotelio
  #3 (permalink)  
Antiguo 28/06/2012, 08:56
 
Fecha de Ingreso: junio-2012
Ubicación: sabadell
Mensajes: 46
Antigüedad: 12 años, 4 meses
Puntos: 6
Respuesta: Crear array borrando valores cuando un valor es repetido

Código PHP:
Ver original
  1. // Podrías asociar el índice 'service' a otro array
  2. array( "id" => "1",
  3.           "be_pro" => 6,
  4.           "name" => "a1",
  5.           "service" =>array( 4a, 4d));
  6.  
  7. // Y pasarle los datos asi
  8. $a['service'][] = 4a; // de esta forma se incrementaria el indice de este nuevo array y no te sobreescribira los datos..
  9.  
  10. // te quedaria algo asi como:
  11. echo $a['service'][0]; // 4a
  12. echo $a['service'][1]; // 4d
__________________
Ante una duda.. ha de mostrarse valor/esfuerzo..
  #4 (permalink)  
Antiguo 28/06/2012, 09:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 25
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Crear array borrando valores cuando un valor es repetido

Cierto , no me había fijado en eso pero esto también me sirve así:

$newmarray = array(
array("id" => "1", "be_pro" => 6, "name" => "a1",array( "0" => 4a, "1" => 4d),
array("id" => "3", "be_pro" => 4, "name" => "a4", array("0" => 3d, "1" => 3s,"2" => 34)),
array("id" => "8", "be_pro" => 3, "name" => "a3", array("0" => 4r, "1" => 4d))

id no es necesario , no importa si es el primer id o el ultimo seleccionado , de hecho también puedo obviarlo.

Última edición por mikexloo; 28/06/2012 a las 09:20
  #5 (permalink)  
Antiguo 03/07/2012, 10:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 25
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Crear array borrando valores cuando un valor es repetido

Cita:
Iniciado por dannelblogger Ver Mensaje
Código PHP:
Ver original
  1. // Podrías asociar el índice 'service' a otro array
  2. array( "id" => "1",
  3.           "be_pro" => 6,
  4.           "name" => "a1",
  5.           "service" =>array( 4a, 4d));
  6.  
  7. // Y pasarle los datos asi
  8. $a['service'][] = 4a; // de esta forma se incrementaria el indice de este nuevo array y no te sobreescribira los datos..
  9.  
  10. // te quedaria algo asi como:
  11. echo $a['service'][0]; // 4a
  12. echo $a['service'][1]; // 4d
A que te refieres con Asociar?

Etiquetas: Ninguno
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:54.