Foros del Web » Programando para Internet » PHP »

Ordenar la salida de matrices

Estas en el tema de Ordenar la salida de matrices en el foro de PHP en Foros del Web. Buenas!! Estuve mirando el manual de PHP y no me aclaro, tengo en mente organizar unas matrices de la siguiente manera: Con estas matrices: Código ...
  #1 (permalink)  
Antiguo 14/12/2009, 13:12
 
Fecha de Ingreso: diciembre-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Ordenar la salida de matrices

Buenas!! Estuve mirando el manual de PHP y no me aclaro, tengo en mente organizar unas matrices de la siguiente manera:

Con estas matrices:
Código PHP:
$compras [‘precios’]= array ( ‘8’,’21’,’12’); 
$compras [‘descripcion’]= array (‘descripción del de 8€’,’descripción del de 21€’‘ descripción del de 12€’); 
Quiero que con algún tipo de array (¡o algo! que ya llevo 2 horazas….) me ordene las matrices de manera que al hacer un print_r ($compras) me salga en pantalla:

Código PHP:
Array ( [precio] => [descripcion] => descripción del de 8€) Array ( [precio] => 21 [descripcion] => descripción del de 21€ ) Array ( [precio] => 12 [descripcion] => descripción del de 12€
Nose si me he explicado muy bien... vamos que quiero que se emparejen las entradas en nuevos arrays dependiendo de la posición que ocupaban los valores en la matriz de salida.

Bueno matematicamente (igual lo explico mejor) seria tomar las dos matrices del principio como vectores para montar una matriz (en este caso una 3x2):

( ‘8’,’21’,’12’)
(‘descripción del de 8€’,’descripción del de 21€’, ‘ descripción del de 12€’)


Ahora te montas la transpuesta de la matriz dando lugar a:

( '8' , 'descripción del 8€')
( '21' , 'descripcion del 21€')
( '12' , 'descripción del 12€')


Espero que se pueda hacer (ojala pudiera usar un lapiz para implementar el codigo ) Bueno gracias anticipadas!
  #2 (permalink)  
Antiguo 14/12/2009, 13:27
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Ordenar la salida de matrices

Seria algo asi:

Código PHP:
Ver original
  1. <?php
  2. $compras['precios'] = array( '8','21','12');
  3. $compras['descripcion'] = array('descripción del de 8€','descripción del de 21€', 'descripción del de 12€');
  4. foreach($compras['precios'] as $clave => $valor) $compras2[] = array($valor, $compras['descripcion'][$clave]);
  5. print_r($compras2);
  6. ?>

Gracias por el karma.....

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 14/12/2009, 13:30
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Ordenar la salida de matrices

Código PHP:
$compras ['precios']= array('8','21','12');  
$compras ['descripcion']= array ('descripción del de 8€''descripción del de 21€''descripción del de 12€');  

for(
$i=0;$i<count($compras);$i++){

echo 
$compras['precios'][$i].", ".$compras['descripcion'][$i]."<br />"M


Asi??
  #4 (permalink)  
Antiguo 14/12/2009, 13:34
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Ordenar la salida de matrices

Hola jackson666......

ten en cuenta que
for($i=0;$i<count($compras);$i++){
recorreria solo dos registros, debido a que es un arreglo bidimensional de dos elementos "precios" y "descripcion"......

por eso yo lo que recorri fue $compras['precios'] ...... que seria la cantidad de cada elemento bidimensional.

Suerte a todos.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 14/12/2009, 13:38
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Ordenar la salida de matrices

Cita:
Iniciado por masterojitos Ver Mensaje
Hola jackson666......

ten en cuenta que
for($i=0;$i<count($compras);$i++){
recorreria solo dos registros, debido a que es un arreglo bidimensional de dos elementos "precios" y "descripcion"......

por eso yo lo que recorri fue $compras['precios'] ...... que seria la cantidad de cada elemento bidimensional.

Suerte a todos.
Es verdad! Seria

Código PHP:
<?php
$compras 
['precios']= array('8','21','12');  
$compras ['descripcion']= array ('descripción del de 8€''descripción del de 21€''descripción del de 12€');  

for(
$i=0;$i<count($compras['precios']);$i++){

echo 
$compras['precios'][$i].", ".$compras['descripcion'][$i]."<br />";


?>
  #6 (permalink)  
Antiguo 14/12/2009, 14:44
 
Fecha de Ingreso: diciembre-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Ordenar la salida de matrices

Gracias a los dos por las aportaciones!

Pero dejarme que os pregunte ¿de que hablais?, ¡¡¡¡¡elementos bidimensionales!!! eso no me suena bien.

Más que nada me asusta porque en realidad necesito combinar mas de una variable, no solo $compras ['precios'] $compras ['descripcion'] sino que tambien debo usar $compras ['cantidad'] vamos que se trata de una combinación tridimensional. Con lo que mi pregunta es ¿tendre que usar otro codigo?
  #7 (permalink)  
Antiguo 14/12/2009, 14:55
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Ordenar la salida de matrices

Eso va a depender de las cantidades de valores que tengan tus arrays... Si tienen todos la misma, lo unico que tenes que hacer es meter la nueva posicion dentro del script que te di yo o @masterojitos, sino habria q ver
  #8 (permalink)  
Antiguo 14/12/2009, 15:04
 
Fecha de Ingreso: diciembre-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Ordenar la salida de matrices

Me trendeis que perdonar por la ignorancia pero no se bien bien como cambiar vuestros codigos para que al hacer u print_r () me salgan exactamente asi:(con las etiquetas)

Código PHP:
Array ( [precio] => [descripcion] => descripción del de 8€) Array ( [precio] => 21[descripcion] => descripción del de 21€ ) Array ( [precio] => 12 [descripcion] => descripción del de 12€
Gracias por la ayuda!
  #9 (permalink)  
Antiguo 14/12/2009, 16:52
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Ordenar la salida de matrices

ps en mi ejemplo yo si creo otro arreglo, y te saldria como pides:

Código PHP:
Ver original
  1. <?php
  2. $compras['precios'] = array( '8','21','12');
  3. $compras['descripcion'] = array('descripción del de 8€','descripción del de 21€', 'descripción del de 12€');
  4. //$compras['cantidad'] = array( '4','10','6');
  5. foreach($compras['precios'] as $clave => $valor) $compras2[] = array($valor, $compras['descripcion'][$clave]);
  6. //si deseas cantidad, seria:
  7. //foreach($compras['precios'] as $clave => $valor) $compras2[] = array($valor, $compras['descripcion'][$clave], $compras['cantidad'][$clave]);
  8. print_r($compras2); //aca veras que sale como pides
  9. ?>

y asi sucesivamente....... con la unica condicion que todos tengan la misma cantidad de elementos para poder unirlos y formar los nuevos arreglos.

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 14/12/2009, 17:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Ordenar la salida de matrices

Masterojitosel problema que tengo con el codigo que me distes es que el print_r me da:

Código PHP:
Array ( [0] => Array ( [0] => [1] => descripción del de 8€ ) [1] => Array ( [0] => 21 [1] => descripción del de 21€ ) [2] => Array ( [0] => 12 [1] => descripción del de 12€ ) ) 
Y lo que necesito es:

Código PHP:
Array ( [precio] => [descripcion] => descripción del de 8€) Array ( [precio] => 21[descripcion] => descripción del de 21€ ) Array ( [precio] => 12 [descripcion] => descripción del de 12€
Me sobra el array que engloba a todos... y eso que llevo un buen rato dandole a ver si se lo quito pero que va...
  #11 (permalink)  
Antiguo 15/12/2009, 00:01
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Ordenar la salida de matrices

si haces un print_r($compras).... esta en el mejor caso te daria algo:
Array ( [0] => Array ( [precio] => 8 [descripcion] => descripción del de 8€) [1] => Array ( [precio] => 21[descripcion] => descripción del de 21€ ) [2] => Array ( [precio] => 12 [descripcion] => descripción del de 12€) )

y si no deseas el array que en globa todo como dices...... ps tendrias que hacer algo asi:
Código PHP:
Ver original
  1. <?php
  2. $compras['precios'] = array( '8','21','12');
  3. $compras['descripcion'] = array('descripción del de 8€','descripción del de 21€', 'descripción del de 12€');
  4. //$compras['cantidad'] = array( '4','10','6');
  5. foreach($compras['precios'] as $clave => $valor) $compras2[] = array("precio" => $valor, "descripcion" => $compras['descripcion'][$clave]);
  6. //si deseas cantidad, seria:
  7. //foreach($compras['precios'] as $clave => $valor) $compras2[] = array("precio" => $valor, "descripcion" => $compras['descripcion'][$clave], "cantidad" => $compras['cantidad'][$clave]);
  8. foreach($compras2 as $indice) print_r($indice); //aca veras que sale como pides
  9. ?>

con esto si obtienes lo que pides..... pero el unico cambio que he hecho es modificar el arreglo $compras2 a asociativo, y en vez de imprimir todo el arreglo, hacer el print_r a cada elemento de este.

Espero sea lo que deseas.

Gracias por los karmas.

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #12 (permalink)  
Antiguo 15/12/2009, 05:26
 
Fecha de Ingreso: diciembre-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Ordenar la salida de matrices

Perfecto!!! Muchiiisimas gracias!! Ahora podre acabar la página web y dedicarme otra vez a mi carrera

Si algun dia logro algun reconocimiento en el mundo de la física dire:

-Gracias a mi familia, amigos y especialmente a Masterojitos que me permitio seguir con mis cosas!!
  #13 (permalink)  
Antiguo 15/12/2009, 13:01
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Ordenar la salida de matrices

hahahaha....... asu tanto asi ????

Espero todo te vaya bien y te superes.

Dios os Bendiga Siempre.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
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 22:05.