Introducción
¿Ya conoces los fundamentos de PHP?
Arreglos
¿Qué son los arreglos?
Arreglos asociativos
Manipulando arreglos
Reto: escuela de michis
Condicionales
Aprende a tomar decisiones con if y else
Cómo organizar tu código con switch
Reto: ¿puedo retirar mis donaciones de Twitch?
Bucles
Ciclo while
¿Do... While?
Ciclo for
Ciclo foreach
Reto: ¿cuántos caminos hay para llegar al mismo punto?
Funciones
Aprende a reutilizar tu código: funciones
Parámetros en las funciones
Profundicemos en los parámetros
Uso de return
Operador de nave espacial
¡Expande tu arsenal de funciones!
Reto: completa el código
Proyecto: juego del ahorcado con PHP
¡Hagamos un juego con PHP!
Validando las letras de los usuarios
Terminando de programar el juego
Bonus: HTML con esteroides
Cómo interactúa PHP con HTML
Próximos pasos
Toma el Curso Práctico de PHP
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 16
Preguntas 1
También se puede implementar con string
.
Las primeras letras o todas mayúsculas o todas minúsculas para que ordene alfabéticamente.
$palabras = ["Hola", "Abecedario", "Perro", "Gato"];
usort($palabras, function($a, $b){
return $a <=> $b;
});
foreach ($palabras as $clave => $valor) {
echo "Clave[" . $clave . "] = " . $valor . "\n";
}
// Ordenamiento burbuja
$array = [12, 56, 32, 89, 2, 1];
for ($i=0; $i < count($array)-1 ; $i++) {
for ($j=0; $j < count($array)-1 ; $j++) {
if($array[$j] > $array[$j+1]){
$aux = $array[$j];
$array[$j] = $array[$j+1];
$array[$j+1] = $aux;
}
}
}
//Imprimimos
foreach($array as $i){ // 1 2 12 32 56 89
echo $i . " ";
}
Recorre todo el arreglo comparando los valores, verifica si un numero es mayor, igual o menor que el otro
**Me hice una pregunta, ** ¿Puede usort ayudarme a oranizar un array de forma de mayor a menor?.. la respuesta es tan simple que me estallo la cabeza… no se si la sintaxis este bn, pero con solo cambiar las $variables a evaluar en nave space, se solucionaba este problema.
**usort () de menor a mayor: **
<?php
$array = [45, 4, 55, 67, 56, 7];
usort($array, function($a, $b){
return $a <=> $b;
});
var_dump($array);
echo "\n";
?>
usort() de mayor a menor:
<?php
$array = [45, 4, 55, 67, 56, 7];
usort($array, function($a, $b){
return $b <=> $a;
});
var_dump($array);
echo "\n";
?>
Aquí os lo dejo con comentarios! 😄
<?php
$precios_de_cafes = [12, 56, 67, 88, 2, 1];
// usort ordena un arreglo utilizando una función de comparación personalizada
usort($precios_de_cafes, function($a, $b){
// La función de comparación utiliza el operador spaceship (<=>)
// que retorna -1 si $a es menor que $b, 0 si son iguales, y 1 si $a es mayor que $b
return $a <=> $b;
});
// var_dump imprime información detallada sobre una variable, en este caso, el arreglo ordenado
var_dump($precios_de_cafes);
<?php
$cafe_price = [12,34,1,13,23];
#Utilizamos una funcion anonima
usort($cafe_price,function($a,$b){
/*El operador Spaceship "<=>" retorna valores
entre -1 y 1 y esto es exactamente lo que utiliza
usort() para ordenar.
1. usort() toma los dos primeros valores de arreglo
2. function los recibe y retorna:
#$a<$b:
echo $var_a <=> $var_d;
#Out: 🙃 -1
#$a>$b:
echo $var_d <=> $var_a;
#Out: 🙃 1
##$a==$b:
echo $var_a <=> $var_b;
#Out: 🙃 0
return $a <=> $b;
3. usort utiliza el valor retornado para ordenar
el array.
*/
return $a<=>$b;
});
var_dump($cafe_price);
/*🙃Out: array(5) {
[0]=> int(1)
[1]=> int(12)
[2]=> int(13)
[3]=> int(23)
[4]=> int(34)
}*/
Con esta clase entendí por que en Js usamos igual un callback en el método de ordenamiento donde internamente escribimos (a - b).
Ahora entiendo que a partir del número que regresa esa resta es como considera si el primer número es menor, igual o mayor.
Gracias Carlos! 🤩
Comparto mí apunte de esta clase donde empleamos el operador de nave espacial 🚀 para ordenar.
.
$precios = [15, 30, 12, 45, 1, 2, 56, 99];
usort($precios, function($a, $b) {
return $a <=> $b;
});
print_r($precios);
En resumen, esta línea de código return $a <=> $b;
hace lo mismo que todo esto:
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
En programación, un “callback” es una función que se pasa como argumento a otra función y se invoca en un momento posterior o cuando se cumple una determinada condición. Esto permite que el código se ejecute de manera asíncrona y se controle la secuencia de eventos.
Imagina que tienes una función llamada doSomething que realiza una tarea específica. Esta función acepta otro parámetro llamado callback, que es una función que se debe ejecutar después de que doSomething haya terminado su tarea.
Aquí hay un ejemplo de cómo se podría utilizar un callback:
<code>
function dosomething(callback) {
// Realiza alguna operación aquí
// Una vez que se completa la operación, se invoca al callback
callback();
}
function callbackFunction() {
console.log("El callback se ha invocado");
}
// Pasamos la función de callback como argumento a dosomething
dosomething(callbackFunction);
En este ejemplo, doSomething es la función principal que realiza una tarea. Luego, después de que se completa la tarea, invoca al callback que se le pasa como argumento. En este caso, el callback es callbackFunction, que simplemente imprime un mensaje en la consola.
El uso de callbacks es común cuando se trabaja con operaciones asíncronas, como solicitudes a servidores, manejo de eventos o procesamiento de archivos. Al pasar una función de callback, podemos definir qué hacer después de que se complete una operación y asegurarnos de que el programa continúe ejecutándose sin bloquearse mientras se espera el resultado de esa operación.
La verdad nunca me he topado con una necesidad asi, pero me gusto saber que existe.
<?php
$preciosDeCafes = [12,56,32,48,19,36];
usort($preciosDeCafes,function ($a,$b)
{
//<=>: Operador de nave espacial
//Ordenar de mayor a menor
// $nave = $b <=> $a;
//ordenar de menor a mayor
$nave = $a <=> $b;
return $nave;
});
var_dump($preciosDeCafes);
echo "<br>";
?>
¿Aparte del operador ‘nave espacial’ que otro operador existe?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?