SalmorejoTech 2024 - Spring Boot <3 Testcontainers
48 Php. Modificacion De Arrays
1. Modificación de arrays
Modificaciones en arrays
Modificación de arrays
var= range(inf,sup)
Crea una nueva matriz (var)
escalar en la que los valores de <?
los elementos serán los números $a=array(1,2,3,1,1,2,3,3,4,4,4,0,1);
enteros (ordenados) $b=array("blanco","azul","blanco","blanco","azul","Blanco","Azul");
pertenecientes al intervalo $c=array(
comprendido entre los valores inf "b" =>"verde",
y sup, incluidos estos. "c" =>"rojo",
"e" =>"verde",
Los valores inf y sup deben ser
números enteros. "f" =>"Rojo",
"g" =>"Verde",
shuffle(array) "a"=>"rojo",
"d" =>"rojo");
Intercambia de modo aleatorio los $C=array(
valores de un array y los reindexa. "b" =>"verde",
Igual que ocurría en caso de los "c" =>"rojo",
números aleatorios, la función "e" =>"verde",
shuffle deberá ir precedida de una "f" =>"Rojo",
semilla del tipo srand. "g" =>"Verde",
"a"=>"rojo",
En el ejemplo hemos usado como "d" =>"rojo");
semilla la función: srand(time
()).
echo "<h3>Crea una matriz de números enteros</h3>";
var= array_flip(array)
$r=range(7,11);
Devuelve un array (var) que
contiene como valores los índices foreach($r as $clave=>$valor){
de la matriz array y como índices echo "Clave: ",$clave," Valor: ",$valor,"<br>";
los valores de aquella. }
Como quiera que los valores
pueden estar repetidos y no es echo "<h3>Intercambia aleatoriamente elementos en una matriz</h3>";
posible que lo estén los índices,
esta función, en caso de valores srand (time());
repetidos, toma cada uno de esos shuffle ($r);
valores una sola vez, lo utiliza
como índice del nuevo array y
asigna como valor del nuevo foreach($r as $clave=>$valor){
elemento el mayor de los índices – echo "Clave: ",$clave," Valor: ",$valor,"<br>";
del array original– de los }
elementos que contuvieran ese
valor.
echo "<h3>Intercambia valores e indices</h3>";
Insertando elementos en $p=array_flip($a);
un arrays
foreach($p as $clave=>$valor){
array_unshift(arr, v1,v2,..) echo "Clave: ",$clave," Valor: ",$valor,"<br>";
}
Inserta al principio de la matriz echo "<br>";
arr los valores v1, v2, etcétera
que pueden ser tantos como se $q=array_flip($c);
deseen y deben estar separados
por comas.
foreach($q as $clave=>$valor){
array_push(array, v1,v2,..) echo "Clave: ",$clave," Valor: ",$valor,"<br>";
}
Inserta al final de la matriz array
los valores v1, v2, etcétera, que echo "<h3>Inserta elementos al principio de una matriz</h3>" ;
igual que en el caso anterior,
pueden ser tantos como se deseen array_unshift($a,97,"Pepe",128);
y deben estar separados por
comas.
Tanto array_unshift como
foreach($a as $clave=>$valor){
array_push asignan a los nuevos echo "Clave: ",$clave," Valor: ",$valor,"<br>";
elementos índices numéricos. }
echo "<br>";
array_pad(array, n, var)
array_unshift($c,97,"Pepe",128);
Inserta nuevos elementos en array
y les asigna el valor contenido en
foreach($c as $clave=>$valor){
var. Insertará tantos nuevos
elementos como sea necesario echo "Clave: ",$clave," Valor: ",$valor,"<br>";
para que el array alcance una }
longitud de n elementos.
Si el valor de n es positivo inserta echo "<h3>Inserta elementos al final de una matriz</h3>";
los elementos al final del array,
si fuera negativo los insertaría al array_push($a,3.4,"Luis",69);
comienzo del mismo.
foreach($a as $clave=>$valor){
A los nuevos elementos del array
echo "Clave: ",$clave," Valor: ",$valor,"<br>";
se les asignan índices numéricos.
}
array_merge($a, $b) echo "<br>";
Crea un nuevo array escalar en el array_push($c,3.4,"Luis",69);
que se incluyen todos los
elementos contenidos en los foreach($c as $clave=>$valor){
arrays $a y $b.
echo "Clave: ",$clave," Valor: ",$valor,"<br>";
2. }
Quitar elementos
de un array echo "<h3>Inserta elementos iguales
al principio o al final de una matriz</h3>";
array_shift($a)
$wz1=array_pad($a,25,"relleno");
La función array_shift extrae el
primer elemento del array $a. foreach($wz1 as $clave=>$valor){
echo "Clave: ",$clave," Valor: ",$valor,"<br>";
array_pop($a)
}
La función array_pop extrae el
último elemento del array $a. echo "<br>";
array_slice($a,n) $wz2=array_pad($c,-17,"relleno");
La función array_slice extrae n
foreach($wz2 as $clave=>$valor){
elementos del array $a.
echo "Clave: ",$clave," Valor: ",$valor,"<br>";
Si el valor de n es positivo }
extraerá todos los elementos a
partir del que ocupa la posición n echo "<h3>Fusiona dos matrices</h3>";
contando desde primero hasta el
último según el orden de creación $wz3=array_merge($a,$b);
de los elementos.
Si el valor de n es negativo foreach($wz3 as $clave=>$valor){
extraerá todos los elementos a echo "Clave: ",$clave," Valor: ",$valor,"<br>";
partir del enésimo, esta vez, }
contando desde el último hasta el echo "<h3>Extrae el primer elemento de una matriz</h3>";
primero.
array_shift ($a);
array_slice($a,n, m)
La función array_slice con dos
foreach($a as $clave=>$valor){
parámetros permite extraer una echo "Clave: ",$clave," Valor: ",$valor,"<br>";
parte de los valores de una matriz }
siguiendo estos criterios: echo "<br>";
Si n y m son positivos, extraerá array_shift ($c);
m elementos a partir del que
ocupa la posición enésima de foreach($c as $clave=>$valor){
primero a último.
echo "Clave: ",$clave," Valor: ",$valor,"<br>";
Cuando n es negativo y m es }
positivo se extraerán m echo "<h3>Extrae el ultimo elemento de una matriz</h3>";
elementos contados a partir del
enésimo, esta vez recorriendo el array_pop($a);
array de último a primero.
foreach($a as $clave=>$valor){
En el caso en que n tenga valor echo "Clave: ",$clave," Valor: ",$valor,"<br>";
positivo y m sea negativo
}
extraerá los comprendidos entre el
enésimo contado de primero a echo "<br>";
último y el emési- mo contado
desde el último hasta el primero. array_pop ($c);
Si n es negativo y m es también foreach($c as $clave=>$valor){
negativo extraerá los caracteres echo "Clave: ",$clave," Valor: ",$valor,"<br>";
comprendidos entre el enésimo }
contado de último a primero y el echo "<h3>Extrae elementos de una matriz</h3>";
emésimo contado en el mismo
sentido.
$zz1=array_slice($a,3);
En este caso se requiere que el
valor absoluto de n sea mayor que foreach($zz1 as $clave=>$valor){
el de m. echo "Clave: ",$clave," Valor: ",$valor,"<br>";
}
En caso de no cumplirse esta echo "<br>";
condición devolverá un array vacío.
$zz2=array_slice($a,-3);
Invertir
el orden de un array foreach($zz2 as $clave=>$valor){
echo "Clave: ",$clave," Valor: ",$valor,"<br>";
array_reverse(array) }
Devuelve un nuevo array cuyos echo "<br>";
elementos están en orden inverso
al del array original. $zz3=array_slice($b,3,4);
De esta forma el elemento que
foreach($zz3 as $clave=>$valor){
ocupaba la última posición pasa a
ocupar la primera y así echo "Clave: ",$clave," Valor: ",$valor,"<br>";
sucesivamente. }
¡Cuidado! echo "<br>";
Recuerda que las posiciones
$zz4=array_slice($b,3,-2);
iniciales de los elementos de un
array no tienen relación con sus
índices sino con la secuencia en foreach($zz4 as $clave=>$valor){
la que fueron creados. echo "Clave: ",$clave," Valor: ",$valor,"<br>";
}
Y otra cosa, mucho cuidado con la
aplicación de todas estas funciones echo "<br>";
y con los índices de los arrays
resultantes. $zz5=array_slice($b,-5,-2);
Fíjate en los ejemplos y verás que
algunas estas funciones foreach($zz5 as $clave=>$valor){
reindexan los resultados y los echo "Clave: ",$clave," Valor: ",$valor,"<br>";
3. convierten en escalares aún en el }
caso de que originalmente fueran
asociativos.
echo "<h3>Invierte los elementos de la matriz</h3>";
$inv=array_reverse($C);
foreach($inv as $clave=>$valor){
echo "Clave: ",$clave," Valor: ",$valor,"<br>";
}
?>
ejemplo63.php
Anterior Indice Siguiente