Foros del Web » Programando para Internet » PHP »

Ordenar un array

Estas en el tema de Ordenar un array en el foro de PHP en Foros del Web. Hola: Pues lo que estoy intentando, es ordenador un array, y luego mostrarlo en una tabla. Lo quiero ordenar por orden alfabético, por la primera ...
  #1 (permalink)  
Antiguo 02/12/2008, 06:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 1 mes
Puntos: 3
Ordenar un array

Hola:
Pues lo que estoy intentando, es ordenador un array, y luego mostrarlo en una tabla.
Lo quiero ordenar por orden alfabético, por la primera columna de la tabla, es decir, por el array [0].
Esta hecho con objetos. asi que dentro de clase, tengo echa esta funcion:

Código PHP:
function ordenar_matriz()
  {
      
arsort($this->array[][]);
            
      echo 
"<table border=1 ALIGN=center CELLPACING=7> ";
        
      for (
$i=0;$i<sizeof($this->array)-1;$i++) 
    {
    echo 
"
        <tr>
            <td ALIGN=center>"
.$this->array[$i][0]."</td>
            <td ALIGN=right>"
.$this->array[$i][1]."</td>
            <td ALIGN=right>"
.$this->array[$i][2]."</td>
        </tr> "
;
    }
        echo 
"</table> ";
  } 
Y luego la llamo pulsando el boton:

Código PHP:
if (isset($_post['BotOrdenado']))
{
    
$list2=new ejercicio($array);
    
$list2->ordenar_matriz();    

Y doy al boton, y no me sale nada. Como si no hubiera pulsado nada.

Alguien me puede ayudar? Si no me he explicado bien, preguntarme lo que sea.

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 02/12/2008, 08:22
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Ordenar un array

Se supone que en el constructor de 'ejercicio' asignas a $this->array el array que le pasas al crear el objeto, ¿no?

Luego en la funcion ordenar_matriz():

Código PHP:
arsort($this->array); 
Espero que te funcione.
__________________
Saludos!
  #3 (permalink)  
Antiguo 02/12/2008, 09:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Ordenar un array

Gracias por tu respuesta.
Pues es que no tenia creado un contructor... se nota que estoy empezando con el php.
Y he empezado a crear el contructor, pero con ello, ahora me dejn de funcionar otras cosas...

Antes de crear el contructor, le doy los valores al array. Este es una pequeña parte de array:

Código PHP:
public $array_biblioteca=array(
                                
0=>array(0=>"Título",1=>"Autor",2=>"Editorial"),
                                
1=>array(0=>"El médico",1=>"Noah Gordon",2=>"Time Warner")); 
Y despues, ya creo el contructor. Este es el contructor que tengo:

Código PHP:
  function __construct ()
  {
      
$this->array();
  } 
Creo que el contructor le creo mal, pero es que no sé cómo hacerle, pasándole el array.

Me podéis ayudar?
  #4 (permalink)  
Antiguo 02/12/2008, 09:50
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Ordenar un array

El constructor de una clase lleva el mismo nombre que ésta o en PHP5 __construct.

Te quedaría así

Código PHP:
class ejercicio {
  
  var 
$matriz;  

   function 
ejercicio ($matriz) {
      
$this->matriz $matriz;
  }

function 
ordenar_matriz() 
  { 
      
arsort($this->matriz); 
             
      echo 
"<table border=1 ALIGN=center CELLPACING=7> "
         
      for (
$i=0;$i<sizeof($this->matriz)-1;$i++)  
    { 
    echo 

        <tr> 
            <td ALIGN=center>"
.$this->matriz[$i][0]."</td> 
            <td ALIGN=right>"
.$this->matriz[$i][1]."</td> 
            <td ALIGN=right>"
.$this->matriz[$i][2]."</td> 
        </tr> "

    } 
        echo 
"</table> "
  } 


__________________
Saludos!
  #5 (permalink)  
Antiguo 02/12/2008, 10:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Ordenar un array

Pues debo de ser muy torpe...porque no me sale.

Haber, y entonces, en dónde doy los valores al array?
Porque donde has puesto:
Código PHP:
var $matriz
, yo tenia definidos todos los valores, como te he mostrado anteriormente en la anterior respuesta.

Me da error var $matriz;

No lo entiendo.

Muchas gracias por las molestias
  #6 (permalink)  
Antiguo 02/12/2008, 10:19
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Ordenar un array

¿¿Te da error al definir el atributo en la clase?? (var $matriz), no debería...

Tienes que llamar a la clase así:

Código PHP:
if (isset($_post['BotOrdenado'])) 

    
$el_array = array (4,7,2,6,9,8); // O como tengas tu array.....
    
$list2=new ejercicio($el_array); 
    
$list2->ordenar_matriz();     

__________________
Saludos!
  #7 (permalink)  
Antiguo 02/12/2008, 11:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Ordenar un array

Bah, me sigue dando error, esto es ilógico. No lo entiendo.
Me da error en la
Código PHP:
var $matriz
Y este es el error que me da:
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in C:\......php on line 32

Eso si, si cambio var por public, que es lo que me pide que use en el error, pues ya no me dá ese error.

Pero tampoco me funciona el mostrar el listado, al haber puesto ahora el constructor.

Esto es un caos.....
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 03:32.