Otra forma sería:
- Convertir el array
$juegos = array("Star Wars|25 dolares|Muy bueno|", "Battlefield|30 dolares|Muy bueno|", "Tony Hawk's|40 dolares|Muy bueno|");
- Y dejarlo de la forma:
$nuevo_array["Star Wars|Muy bueno"] = "25 dolares";
$nuevo_array["Battlefield|Muy bueno"] = "30 dolares";
$nuevo_array["Tony Hawk's|Muy bueno"] = "40 dolares";
Así sería más fácil de ordenar por el precio.
Luego, simplemente ordenas ese array, y lo recorres para imprimirlo.
Código PHP:
$juegos = array("Star Wars|25 dolares|Muy bueno|", "Battlefield|30 dolares|Muy bueno|", "Tony Hawk's|40 dolares|Muy bueno|");
foreach($juegos as $valor){
$registro = explode("|", $valor);
$nuevo_array[$registro[0]."|".$registro[2]] = $registro[1]; // Esto generará un array con la siguiente estructura $nuevo_array["Titulo|Comentario"] = precio;
}
asort($nuevo_array);// Ordenamos el nuevo array por precio
foreach($nuevo_array as $clave => $valor){ // Recorremos array ordenado
$registro = explode("|", $clave); // $registro[0] será el título, $registro[1] el comentario
echo "Título: ".$registro[0]."<br />Precio: ".$valor."<br />Comentario: ".$registro[1]."<br /><hr />";
}
Seguramente existirá alguna manera más sencilla, así que sigue investigando.
Saludos