Dividir un arreglo en dos Hola!!, tengo una situación con un arreglo que no he podido resolver y me estoy haciendo líos, acudo a ustedes porque no sé como resolverlo. La situación es que tengo un arreglo como: matriz1[0]=("clave"=>'001', "nombre"=>'Juan', "edad"=>23, "actividad"=>'Lectura'); matriz1[1]=("clave"=>'009', "nombre"=>'Alberto', "edad"=>25, "actividad"=>'Deportes'); matriz1[2]=("clave"=>'003', "nombre"=>'Raúl', "edad"=>20, "actividad"=>'Música'); matriz1[3]=("clave"=>'012', "nombre"=>'Miguel', "edad"=>24, "actividad"=>'Lectura'); matriz1[4]=("clave"=>'001', "nombre"=>'Juan', "edad"=>23, "actividad"=>'Música'); matriz1[5]=("clave"=>'012', "nombre"=>'Miguel', "edad"=>24, "actividad"=>'Deportes'); matriz1[6]=("clave"=>'001', "nombre"=>'Juan', "edad"=>23, "actividad"=>'Enfermería'); De este arreglo debo obtener un arreglo que almacene los registros sin repetir, que quede: matriz1[0]=("clave"=>'001', "nombre"=>'Juan', "edad"=>23, "actividad"=>'Lectura'); matriz1[1]=("clave"=>'009', "nombre"=>'Alberto', "edad"=>25, "actividad"=>'Deportes'); matriz1[2]=("clave"=>'003', "nombre"=>'Raúl', "edad"=>20, "actividad"=>'Música'); matriz1[3]=("clave"=>'012', "nombre"=>'Miguel', "edad"=>24, "actividad"=>'Lectura'); Y obtener otro arreglo que almacene a los que se repitieron, debe quedar: matriz1[4]=("clave"=>'001', "nombre"=>'Juan', "edad"=>23, "actividad"=>'Música'); matriz1[5]=("clave"=>'012', "nombre"=>'Miguel', "edad"=>24, "actividad"=>'Deportes'); matriz1[6]=("clave"=>'001', "nombre"=>'Juan', "edad"=>23, "actividad"=>'Enfermería'); Desde ya muchas gracias por su atención y ayuda. |
Respuesta: Dividir un arreglo en dos Puedes usar las funciones de array para conseguir lo que necesitas. Te sugiero investigar el manual: http://www.php.net/manual/en/language.types.array.php |
Respuesta: Dividir un arreglo en dos Gracias pateketrueke, si he estado leyendo algunas funciones y creo que no aplican a lo que requiero o no he dado con la función que corresponde, por lo cual me dijé "no hay función sobre arreglos que se aplique a lo requiero" e inicié a hacer comparaciones con foreach e if, pero tarda muchísimo en resolver y realmente no sé si devuelva resultados correctos, porque me devuelve error de tiempo agotado. Es por eso que acudí a este foro. Y sigo investigando. |
Respuesta: Dividir un arreglo en dos Bueno, no existen funciones que cumplen exactamente lo que deseamos. Por eso debes emplear tu ingenio, de ahí viene el término de ingeniería. - El primer paso es obtener los elementos que no se repiten, puedes usar array_unique() para obtener los elementos únicos del array. - Con el array de elementos únicos haces un array_diff() con el array original, y así obtienes las diferencias entre ambos. Ahí tienes, un array con lo elementos no repetidos, y otro con los repetidos. ;-) |
Respuesta: Dividir un arreglo en dos el campo clave podria ser un parametro para saber si estan o no repetidos? o a fuerzas debes revisar todos los datos de la fila en curso? |
Respuesta: Dividir un arreglo en dos Paketrueke, lo que pasa es que no puedo usar el array_unique porque no quiero obtener los elementos únicos del arreglo, por ejemplo en el array original debo obtener: matriz1[0]=("clave"=>'001', "nombre"=>'Juan', "edad"=>23, "actividad"=>'Lectura'); matriz1[1]=("clave"=>'009', "nombre"=>'Alberto', "edad"=>25, "actividad"=>'Deportes'); matriz1[2]=("clave"=>'003', "nombre"=>'Raúl', "edad"=>20, "actividad"=>'Música'); matriz1[3]=("clave"=>'012', "nombre"=>'Miguel', "edad"=>24, "actividad"=>'Lectura'); y con array_unique omitiría el registro que corresponde a Juan y Miguel porque estos se repiten. Y respecto a la pregunta de mogurbon si sólamente con la clave Gracias |
Respuesta: Dividir un arreglo en dos Entonces es necesario que iteres el arreglo y hagas las comparaciones necesarias para separar los datos. :policia: |
Respuesta: Dividir un arreglo en dos
Código PHP:
Ver original |
La zona horaria es GMT -6. Ahora son las 21:54. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.