Foros del Web » Programando para Internet » PHP »

Cambiar de posicion resultados de un foreach

Estas en el tema de Cambiar de posicion resultados de un foreach en el foro de PHP en Foros del Web. Bueno, asi como dije, necesito cambiar de posicion los resultados que me arroja el foreach, lo necesito asi ya que estoy pintando una subcategoria y ...
  #1 (permalink)  
Antiguo 04/03/2009, 09:40
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 2 meses
Puntos: 0
Cambiar de posicion resultados de un foreach

Bueno, asi como dije, necesito cambiar de posicion los resultados que me arroja el foreach, lo necesito asi ya que estoy pintando una subcategoria y los padres de ella y lo hace de la ultima hasta la primera y necesito que me quede de la primera a la ultima
Aqui pongo el codigo que estoy utilizando para generar el ciclo.

Código PHP:
function jerarquia$codigo ){
    
    
$categoria = new Categoria();
    
$arbol_jer $categoria->jerarquiaArbol($codigo);
    
      foreach(
$arbol_jer as $jearq){
          
          echo 
$jearq["nom_cat"]. " / ";
          
          
$arbol_jer1 $categoria->jerarquiaArbolRow($jearq["padre"]);
          
          
jerarquia$arbol_jer1["id_cat"] );
              
      }
}
    
    
    
jerarquia$this->id ); 
el echo $jearq["nom_cat"]. " / "; me va mostrando los nombres de las subcategorias amarradas pero lo necesito en orden inverso, les agradezco su colaboracion.
  #2 (permalink)  
Antiguo 04/03/2009, 10:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: Cambiar de posicion resultados de un foreach

Podrías usar array_reverse para invertir el mismo array, y después ejecutar el foreach .

http://www.php.net/array_reverse
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 04/03/2009, 10:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Cambiar de posicion resultados de un foreach

Hola Ari0n,

Si los datos te vienen de una consulta es mejor que ordenes la consulta usando ORDER BY campo DESC, esto es para evitar hacer más trabajo.

Si no es posible puedes tu caminar manualmente por el arreglo usando un ciclo for.

Saludos
  #4 (permalink)  
Antiguo 04/03/2009, 10:07
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: Cambiar de posicion resultados de un foreach

Holas.

¿Cómo es tu arreglo $arbol_jer? ¿Es de índice numérico o asociativo? Como sea, mi sugerencia es que lo reordenes antes de recorrerlo con el foreach (pensando en que es un arreglo de alcance local, no? si no, habría que reordenar y recorrer una copia del mismo). En la documentación de php tienes varias funciones para reordenar matrices :)
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #5 (permalink)  
Antiguo 05/03/2009, 10:30
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Cambiar de posicion resultados de un foreach

Gracias a todos, no se si pueda hacer algo antes del foreach ya que el arbol se esta formando a partir del foreach ya que recorre la tabla y se trae lo que el necesita por eso no puedo hacer un ORDER BY en la tabla y si lo hiciera de todas maneras saldria igual.
Mi idea es meter el resultado del foreach en un array y luego ordenarlo con algo, me podrian ayudar con eso? Gracias.
  #6 (permalink)  
Antiguo 05/03/2009, 13:34
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: Cambiar de posicion resultados de un foreach

A eso nos referíamos con usar alguna de las funciones para ordenar matrices: empieza probando la que te dijo David, array_reverse, y si no te sirve, sigue con las otras que ofrece php en su documentación: sort(), rsort(), ksort(), etc.
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
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 20:20.