quiero ordenar los valores del array de diferentes formas utilizando uasort()
y mostrarlo con each, list
pero ni consigo que se ordene ni mostrar la lista...la funcion reset no me pone el puntero en el primer valor del array
el codigo es el siguiente
Código PHP:
$productos=array(array("Cod"=>"A",
"Descrip"=>"Action",
"Precio"=>100),
array("Cod"=>"P",
"Descrip"=>"Photo",
"Precio"=>10),
array("Cod"=>"F",
"Descrip"=>"Flash",
"Precio"=>40)
);
echo "sin ordenar<br>";
for ($fila=0;$fila<3;$fila++){
while(list ($key, $value)=each($productos[$fila]))
{
echo"|$value";
}
echo "|<br>";
}
reset($productos);
echo "<br><br>VALOR descripcion - ORDENANDO VALORES ALFABETICOS<br><br><br>";
// se ordenan por orden alfabetico
function ascendente($x,$y)
{
if($x[1]==$y[1])
return 0;
else if ($x[1]< $y[1])
return -1;
else
return 1;
}
uasort ($productos,ascendente);
echo "orden ascendente<br>";
for ($fila=0;$fila<3;$fila++){
while(list ($key, $value)=each($productos[$fila]))
{
echo"|$value";
}
echo "|<br>";
}
reset($productos);
function descendente($x,$y)
{
if($x[1]==$y[1])
return 0;
else if ($x[1]< $y[1])
return 1;
else
return -1;
}
uasort ($productos,descendente);
echo "orden descendente<br>";
for ($fila=0;$fila<3;$fila++){
while(list ($key, $value)=each($productos[$fila]))
{
echo"|$value";
}
echo "|<br>";
}
reset($productos);
echo "<br><br>VALOR precio-ORDENANDO VALORES NUMERICOS<br><br><br>";
// se comparan los numeros
function ascendentenum($x,$y)
{
if($x[2]==$y[2])
return 0;
else if ($x[2]< $y[2])
return -1;
else
return 1;
}
uasort ($productos,ascendentenum);
echo "orden ascendente<br>";
for ($fila=0;$fila<3;$fila++){
while(list ($key, $value)=each($productos[$fila]))
{
echo"|$value";
}
echo "|<br>";
}
reset($productos);
function descendentenum($x,$y)
{
if($x[2]==$y[2])
return 0;
else if ($x[2]< $y[2])
return 1;
else
return -1;
}
uasort ($productos,descendentenum);
echo "orden descendente<br>";
for ($fila=0;$fila<3;$fila++){
while(list ($key, $value)=each($productos[$fila]))
{
echo"|$value";
}
echo "|<br>";
}
reset($productos);