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