Skip to content

Commit c76145f

Browse files
authored
Merge pull request mouredev#5794 from adrs1166ma/main
#3 - php
2 parents 000da71 + b3508be commit c76145f

File tree

1 file changed

+295
-0
lines changed

1 file changed

+295
-0
lines changed
Lines changed: 295 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,295 @@
1+
<?php
2+
3+
/*
4+
* EJERCICIO:
5+
* - Muestra ejemplos de creación de todas las estructuras soportadas por defecto en tu lenguaje.
6+
* - Utiliza operaciones de inserción, borrado, actualización y ordenación.
7+
*
8+
* DIFICULTAD EXTRA (opcional):
9+
* Crea una agenda de contactos por terminal.
10+
* - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos.
11+
* - Cada contacto debe tener un nombre y un número de teléfono.
12+
* - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación
13+
* los datos necesarios para llevarla a cabo.
14+
* - El programa no puede dejar introducir números de teléfono no númericos y con más de 11 dígitos.
15+
* (o el número de dígitos que quieras)
16+
* - También se debe proponer una operación de finalización del programa.
17+
*/
18+
function _start(){echo 'Invocacion<pre>';} // 🔹funciones para el ejemplo
19+
function _end(){echo '</pre><br>';} // 🔹funciones para el ejemplo
20+
/*
21+
🟢 Estructuras de Datos
22+
*/
23+
// 🟠 Forma 1
24+
$carrito1 = array (
25+
'carne' => "🥩",
26+
'papitas' => "🍟",
27+
'pizza' => "🍕",
28+
'chocolate' => "🍫",
29+
'whafle' => "🧇",
30+
'huevo' => "🥚"
31+
);
32+
33+
34+
// 🟠 Forma 2
35+
class tienda {
36+
public $Dato1 = "🥩";
37+
public $Dato2 = "🍟";
38+
public $Dato3 = "🍕";
39+
public $Dato4 = "🍫";
40+
public $Dato5 = "🧇";
41+
public $Dato6 = "🥚";
42+
}
43+
$carrito2 = new tienda();
44+
45+
46+
// 🟠 Forma 3
47+
$carrito3 = array('🥩','🍟','🍕','🍫','🧇','🥚'); // mas usada en Wordpress
48+
49+
50+
// 🟠 Forma 4
51+
$carrito4 = ['🥩','🍟','🍕','🍫','🧇','🥚']; // mas usada en Laravel
52+
// 0 , 1 , 2 , 3 , 4 , 5 | Indices/posicion general
53+
54+
// Mostrar en pantalla 🔹
55+
_start();
56+
// Forma en pantalla
57+
var_dump($carrito1);
58+
var_dump($carrito2);
59+
var_dump($carrito3);
60+
var_dump($carrito4);
61+
// Extrar un Dato en pantalla
62+
echo $carrito1['chocolate']; // Extraer 🍫
63+
echo $carrito2 -> Dato4; // Extraer 🍫
64+
echo $carrito3[3]; // Extraer 🍫
65+
echo $carrito4[3]; // Extraer 🍫
66+
_end();
67+
68+
69+
// 🟠 Ordenamiento
70+
$abecedario = ['z', 'b', 'h', 'n', 'q', 'v', 'y', 'a', 'c', 'e', 'i', 'o', 'u', 'd', 'f', 'g', 'j', 'k', 'l', 'm', 'p', 'r', 's', 't', 'w', 'x'];
71+
$numeros = [4, 6 , 2, 1, 9, 3, 5, 8, 7, 11, 19, 13, 10, 20, 14, 18, 12, 17, 15, 16];
72+
// De menor a mayor
73+
_start();
74+
sort($abecedario);
75+
sort($numeros);
76+
sort($carrito4);
77+
// Imprimir
78+
print_r($abecedario);
79+
print_r($numeros);
80+
print_r($carrito4);
81+
_end();
82+
83+
// Al reves
84+
_start();
85+
rsort($abecedario);
86+
rsort($numeros);
87+
rsort($carrito4);
88+
// Imprimir
89+
print_r($abecedario);
90+
print_r($numeros);
91+
print_r($carrito4);
92+
_end();
93+
94+
echo "🟠 Añadir<br>";
95+
$carrito4 = ['🥩','🍟','🍕','🍫','🧇','🥚']; //array original
96+
97+
_start();
98+
$carrito4[6] = '🍔'; // agregarlo en el indice 6
99+
print_r($carrito4);
100+
// Ahora tendra estos datos '🥩','🍟','🍕','🍫','🧇','🥚','🍔'
101+
_end();
102+
_start();
103+
array_push($carrito4,'🥓'); // agregarlo al final del arreglo
104+
print_r($carrito4);
105+
// Ahora tendra estos datos '🥩','🍟','🍕','🍫','🧇','🥚','🍔','🥓'
106+
_end();
107+
_start();
108+
array_unshift($carrito4,'🍙'); // agregarlo al inicio del arreglo
109+
print_r($carrito4);
110+
// Ahora tendra estos datos '🍙','🥩','🍟','🍕','🍫','🧇','🥚','🍔','🥓'
111+
_end();
112+
113+
echo "🟠 Eliminar";
114+
_start();
115+
unset($carrito4[4]); // Eliminamso chocolate
116+
print_r($carrito4); // '🍙','🥩','🍟','🍕','🧇','🥚','🍔','🥓'
117+
_end();
118+
_end();
119+
120+
121+
122+
echo "🟠 Mostrar<br>";
123+
_start();
124+
foreach ($carrito4 as $producto) {
125+
echo $producto.'<br>';
126+
}
127+
_end();
128+
129+
130+
131+
132+
// 🟠 Associative Arrays
133+
$carrito1 = array (
134+
'carne' => "🥩",
135+
'papitas' => "🍟",
136+
'pizza' => "🍕",
137+
'chocolate' => "🍫",
138+
'whafle' => "🧇",
139+
'huevo' => [
140+
'magnitud' => "kl",
141+
'precio' => 5.50,
142+
'informacion' => [
143+
'Descripcion' => "Excelente fuente de vitaminas y minerales",
144+
'icono' => "🥚"
145+
]
146+
]
147+
);
148+
149+
// Imprimirlo
150+
_start();
151+
echo $carrito1['huevo']; // ❌
152+
echo '<br>';
153+
echo $carrito1['huevo']['informacion']['Descripcion']; // ✅
154+
echo '<br>';
155+
echo $carrito1['huevo']['informacion']['icono']; // ✅
156+
_end();
157+
158+
echo '<br>';
159+
160+
_start();
161+
echo $carrito1['huevo']['informacion']['pronombre'] = 'Huevito hacker'; // ✅
162+
echo '<br>';
163+
var_dump($carrito1);
164+
_end();
165+
166+
167+
168+
echo '<br>🔥 Extra <br>';
169+
/*
170+
🔥 Extra
171+
*/
172+
$agenda = [];
173+
174+
_start();
175+
function extra() {
176+
177+
global $agenda;
178+
179+
while (true) {
180+
echo "/- Agenda de Contactos -/<br>";
181+
echo "1. Buscar contacto<br>";
182+
echo "2. Insertar contacto<br>";
183+
echo "3. Actualizar contacto<br>";
184+
echo "4. Eliminar contacto<br>";
185+
echo "5. Salir<br>";
186+
echo "---------------------------<br>";
187+
188+
$opcion = readline("Seleccione una opción (1-5): ");
189+
190+
switch ($opcion) {
191+
case 1:
192+
buscarContacto($agenda);
193+
break;
194+
case 2:
195+
insertarContacto($agenda);
196+
break;
197+
case 3:
198+
actualizarContacto($agenda);
199+
break;
200+
case 4:
201+
eliminarContacto($agenda);
202+
break;
203+
case 5:
204+
echo "Saliendo del programa<br>";
205+
exit;
206+
default:
207+
echo "Inténtelo de nuevo.<br>";
208+
}
209+
}
210+
}
211+
212+
extra();
213+
214+
215+
216+
function buscarContacto($agenda) {
217+
$nombre = readline("Ingrese el nombre del contacto a buscar: ");
218+
$encontrado = false;
219+
220+
foreach ($agenda as $contacto) {
221+
if ($contacto['nombre'] === $nombre) {
222+
echo "Nombre: {$contacto['nombre']}<br>";
223+
echo "Teléfono: {$contacto['telefono']}<br>";
224+
$encontrado = true;
225+
break;
226+
}
227+
}
228+
229+
if (!$encontrado) {
230+
echo "Contacto no encontrado.<br>";
231+
}
232+
}
233+
234+
function insertarContacto(&$agenda) {
235+
$nombre = readline("Ingrese el nombre del nuevo contacto: ");
236+
$telefono = validarTelefono();
237+
238+
$agenda[] = [
239+
'nombre' => $nombre,
240+
'telefono' => $telefono
241+
];
242+
243+
echo "Contacto insertado con éxito.<br>";
244+
}
245+
246+
function actualizarContacto(&$agenda) {
247+
$nombre = readline("Ingrese el nombre del contacto a actualizar: ");
248+
$indice = buscarIndiceContacto($agenda, $nombre);
249+
250+
if ($indice !== -1) {
251+
$telefono = validarTelefono();
252+
$agenda[$indice]['telefono'] = $telefono;
253+
echo "Contacto actualizado con éxito.<br>";
254+
} else {
255+
echo "Contacto no encontrado.<br>";
256+
}
257+
}
258+
259+
function eliminarContacto(&$agenda) {
260+
$nombre = readline("Ingrese el nombre del contacto a eliminar: ");
261+
$indice = buscarIndiceContacto($agenda, $nombre);
262+
263+
if ($indice !== -1) {
264+
unset($agenda[$indice]);
265+
$agenda = array_values($agenda);
266+
echo "Contacto eliminado con éxito.<br>";
267+
} else {
268+
echo "Contacto no encontrado.<br>";
269+
}
270+
}
271+
272+
function buscarIndiceContacto($agenda, $nombre) {
273+
foreach ($agenda as $indice => $contacto) {
274+
if ($contacto['nombre'] === $nombre) {
275+
return $indice;
276+
}
277+
}
278+
279+
return -1;
280+
}
281+
282+
function validarTelefono() {
283+
while (true) {
284+
$telefono = readline("Ingrese el número de teléfono: ");
285+
286+
if (ctype_digit($telefono) && strlen($telefono) <= 8) {
287+
return $telefono;
288+
} else {
289+
echo "Número de teléfono no válido. Inténtelo de nuevo.<br>";
290+
}
291+
}
292+
}
293+
_end();
294+
295+
?>

0 commit comments

Comments
 (0)