Foros del Web » Programando para Internet » PHP »

no comprendo como funciona una funcion de php usando usort()

Estas en el tema de no comprendo como funciona una funcion de php usando usort() en el foro de PHP en Foros del Web. Hola Amigos y Amigas del foro. Mi nombre es Andrés y creé este tema para comentarles que estoy estudiando php y me encontré con una ...
  #1 (permalink)  
Antiguo 20/11/2014, 00:40
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta no comprendo como funciona una funcion de php usando usort()

Hola Amigos y Amigas del foro.

Mi nombre es Andrés y creé este tema para comentarles que estoy estudiando php y me encontré con una función, que está en el curso de Jesus Conde, que modifica los lugares en los que se encuentran los valores de un array predefinido bidimensional. El ejercicio completo es:

$productos = array(array("A","Action",100),
array("P","Photo",10),
array("F","Flash",4));

echo $productos[2][2]; // ACÁ SE MUESTRA EL VALOR 4

echo "<br/>";

function compara($x,$y)
{
if ($x[1]>$y[1])
return 1;
elseif ($x[1]==$y[1])
return 0;
elseif ($x[1]<$y[1])
return -1;
}

usort($productos,compara);
echo $productos[2][2]; // ACÁ SE MUESTRA EL VALOR 10

La verdad es que le di muchisimas vueltas pero no encuentro porque sucede ese cambio. Les estaría agradecidisimos si me hicieran el favor de explicarme o indicarme alguna fuente que me lo enseñe.
  #2 (permalink)  
Antiguo 20/11/2014, 01:10
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: no comprendo como funciona una funcion de php usando usort()

La función usort, ordena los valores de una array usando una función definida por el usuario en la cual se especifique el criterio de ordenamiento. En este caso, se realiza el ordenamiento de los arrays contenidos en el array principal, de acuerdo al segundo valor de cada uno de ellos. Como son cadenas, se realiza el ordenamiento alfabético. El array que contiene a 'Action', queda primero porque empieza con la A y está antes que la P de 'Photo' y la F de 'Flash', pero como esta última está antes que la P de 'Photo', ahora ese array pasará a ser el segundo y el de 'Photo', el tercero. Por eso es que ahora $productos[2][2], contiene el valor 10 que corresponde al array de 'Photo' que fue relegado al final.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: funcion
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 19:44.