CursosEmpresasBlogLiveConfPrecios

Operador de nave espacial

Clase 18 de 25 • Curso de PHP: Arreglos, Funciones y Estructuras de Control

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    ¿Ya conoces los fundamentos de PHP?

    ¿Ya conoces los fundamentos de PHP?

    02:26
Arreglos
  • 2
    ¿Qué son los arreglos?

    ¿Qué son los arreglos?

    07:36
  • 3
    Arreglos asociativos

    Arreglos asociativos

    13:46
  • 4
    Manipulando arreglos

    Manipulando arreglos

    13:43
  • 5
    Reto: escuela de michis

    Reto: escuela de michis

    11:50
Condicionales
  • 6
    Aprende a tomar decisiones con if y else

    Aprende a tomar decisiones con if y else

    10:20
  • 7
    Cómo organizar tu código con switch

    Cómo organizar tu código con switch

    09:58
  • 8
    Reto: ¿puedo retirar mis donaciones de Twitch?

    Reto: ¿puedo retirar mis donaciones de Twitch?

    05:35
Bucles
  • 9
    Ciclo while

    Ciclo while

    11:37
  • 10
    ¿Do... While?

    ¿Do... While?

    07:08
  • 11
    Ciclo for

    Ciclo for

    10:17
  • 12
    Ciclo foreach

    Ciclo foreach

    13:57
  • 13
    Reto: ¿cuántos caminos hay para llegar al mismo punto?

    Reto: ¿cuántos caminos hay para llegar al mismo punto?

    21:13
Funciones
  • 14
    Aprende a reutilizar tu código: funciones

    Aprende a reutilizar tu código: funciones

    09:55
  • 15
    Parámetros en las funciones

    Parámetros en las funciones

    09:06
  • 16
    Profundicemos en los parámetros

    Profundicemos en los parámetros

    14:30
  • 17
    Uso de return

    Uso de return

    07:57
  • 18
    Operador de nave espacial

    Operador de nave espacial

    07:49
  • 19
    ¡Expande tu arsenal de funciones!

    ¡Expande tu arsenal de funciones!

    05:07
  • 20
    Reto: completa el código

    Reto: completa el código

    04:46
Proyecto: juego del ahorcado con PHP
  • 21
    ¡Hagamos un juego con PHP!

    ¡Hagamos un juego con PHP!

    12:01
  • 22
    Validando las letras de los usuarios

    Validando las letras de los usuarios

    10:54
  • 23
    Terminando de programar el juego

    Terminando de programar el juego

    12:21
Bonus: HTML con esteroides
  • 24
    Cómo interactúa PHP con HTML

    Cómo interactúa PHP con HTML

    08:13
Próximos pasos
  • 25
    Toma el Curso Práctico de PHP

    Toma el Curso Práctico de PHP

    02:35
    Jimmy Buriticá Londoño

    Jimmy Buriticá Londoño

    student•
    hace 4 años

    Operador Nave Espacial <=>

    15-cazas-tie-star-wars-avanzado.png
    Guadalupe Monge Barale

    Guadalupe Monge Barale

    student•
    hace 4 años

    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"; }
      Jhon Carlos Romo Ramirez

      Jhon Carlos Romo Ramirez

      student•
      hace 2 años

      Claro, muy buen aporte!

    Wilmer Alexander Salazar Pabon

    Wilmer Alexander Salazar Pabon

    student•
    hace 4 años

    Recorre todo el arreglo comparando los valores, verifica si un numero es mayor, igual o menor que el otro

    Aka SinssChoss

    Aka SinssChoss

    student•
    hace 3 años

    Ordenamiento de arreglos mediante el método burbuja

    // 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 . " "; }
    Bryan David Muñoz

    Bryan David Muñoz

    student•
    hace 3 años

    **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"; ?>
      Christian Medel

      Christian Medel

      student•
      hace 3 años

      supongo que tambien podria funcionar la negacion del mismo usort

    Pablo Rodríguez Cruz

    Pablo Rodríguez Cruz

    student•
    hace 3 años

    Aquí os lo dejo con comentarios! :D

    <?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);
    Platzi Team

    Platzi Team

    student•
    hace 4 años
    • usort es una funcion de Orden superior puesto que dentro de si misma lleva como argumento otra funcion.
    <?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) }*/
    Carlos Armando Hernández Godoy

    Carlos Armando Hernández Godoy

    student•
    hace 2 años

    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.

    Fernando Luna

    Fernando Luna

    student•
    hace 4 años

    se podra usar para hacer un arbol binario? 👀🧠

      Mauricio Galvez

      Mauricio Galvez

      student•
      hace 3 años

      Guau sí. Sería un gran caso de uso.

    Joel Dominguez Merino

    Joel Dominguez Merino

    student•
    hace 3 años

    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. .

    code.png

    Jimmy Buriticá Londoño

    Jimmy Buriticá Londoño

    student•
    hace 4 años

    Operador Nave Espacial

    $precios = [15, 30, 12, 45, 1, 2, 56, 99]; usort($precios, function($a, $b) { return $a <=> $b; }); print_r($precios);
    MARLON CHUQUINO CAPA

    MARLON CHUQUINO CAPA

    student•
    hace 9 meses

    francamente en esta clase no entendi ni mela

    Jhony Quintero Machado

    Jhony Quintero Machado

    student•
    hace 2 años

    Notas de la clase y repaso:

    Tengo una lista de precios de cafés en un array que deseo ordenar.

    1. Lista de Precios: Primero tenemos una lista llamada $precios_de_cafes con varios números. Cada número representa el precio de un café diferente.

    $precios_de_cafes = [12, 56, 32, 89, 2, 1];

    1. Ordenar la Lista: Para ordenar esta lista, utilizamos una herramienta llamada usort(), que es una función en PHP que nos ayuda a ordenar elementos en un array de acuerdo a una regla que yo defino.

    usort($precios_de_cafes, function($a, $b){

    return $a <=> $b;

    });

    • Función Anónima: Aquí debemos crear una "función anónima", es decir, una función sin nombre que sólo se usa aquí y que se invoca así misma. Esta función toma dos elementos a la vez (por ejemplo, $a y $b, que son precios de la lista), y decide cuál debería ir antes y cuál después.
    • Operador de Nave Espacial: El <=> es conocido como el "operador de nave espacial". Compara los dos elementos ($a y $b):
      • Si $a es menor que $b, devuelve -1 (lo que significa que $a va antes que $b).
      • Si $a es igual a $b, devuelve 0 (quedan en el mismo orden que estaban).
      • Si $a es mayor que $b, devuelve 1 (lo que significa que $a va después de $b).
    1. Mostrar el Resultado: Al final, utilizamos var_dump() para mostrar cómo quedó ordenada la lista después de usar usort(). Ahora la lista $precios_de_cafes estará organizada de menor a mayor precio.

    var_dump($precios_de_cafes);

    Jefferson Lennart Campos Segovia

    Jefferson Lennart Campos Segovia

    student•
    hace 2 años

    Interesante

    LESTHER XITUMUL MANUEL

    LESTHER XITUMUL MANUEL

    student•
    hace 2 años

    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;
    Jose Alejandro Pantoja Giraldo

    Jose Alejandro Pantoja Giraldo

    student•
    hace 3 años

    La verdad nunca me he topado con una necesidad asi, pero me gusto saber que existe.

    Carlos Enrique Jiménez Avendaño

    Carlos Enrique Jiménez Avendaño

    student•
    hace 3 años
    <?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>"; ?>
    Cristobal Nyram

    Cristobal Nyram

    student•
    hace 4 años

    ¿Aparte del operador 'nave espacial' que otro operador existe?

      Carlos Rubén Díaz Gutiérrez

      Carlos Rubén Díaz Gutiérrez

      student•
      hace 3 años

      Te dejo la documentación oficial de PHP, ahí están todos los operadores.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads