| Nombre de la función | Ordena por | Mantiene asociación con las key | Orden de la clasificación | Funciones relacionadas |
|---|---|---|---|---|
| array_multisort() | valor | sí si es asociativa, no si es númerica | primer array u opciones de clasificación | array_walk() |
| asort() | valor | sí | menor a mayor | arsort() |
| arsort() | valor | sí | mayor a menor | asort() |
| krsort() | key | sí | mayor a menor | ksort() |
| ksort() | key | sí | menor a mayor | asort() |
| natcasesort() | valores | sí | natural, insensible a mayúsculas y minúsculas | natsort() |
| natsort() | valor | sí | natural | natcasesort() |
| rsort() | valor | no | mayor a menor | sort() |
| shuffle() | valor | no | aleatorio | array_rand() |
| sort() | valor | no | menor a mayor | rsort() |
| uasort() | valor | sí | definido por el usuario | uksort() |
| uksort() | key | sí | definido por el usuario | uasort() |
| usort() | valor | no | definido por el usuario | uasort() |
Etiqueta: array
Funciones Array (V)
Funciones de búsqueda en arrays:
Ejemplos:
$tabla=range("a","j");
if (in_array("b",$tabla)){
echo "Está la b<br/>";
}
if (in_array("w",$tabla)){
echo "Está la w<br/>";
}
$pos= array_search("b", $tabla);
echo "|".$pos."|<br/>";
$pos= array_search("w", $tabla);
echo "|".$pos."|<br/>";
$asociativa=array("a"=>1,"b"=>2,"c"=>3,"d"=>4,);
$pos= array_search(3, $asociativa);
echo "|".$pos."|<br/>";
if (array_key_exists("d",$asociativa)){
echo "Existe la clave d<br/>";
}
Funciones Array (IV)
Obtener partes de un array y modificarlo:
Ejemplos:
function muestraTabla($tabla) {
echo "<pre>";
print_r($tabla);
echo "</pre>";
}
$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, 2);
// $entrada ahora es array("rojo", "verde")
muestraTabla($entrada);
$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, 2,1);
// $entrada ahora es array("rojo", "verde","amarillo")
muestraTabla($entrada);
$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, 1, -1);
// $entrada ahora es array("rojo", "amarillo")
muestraTabla($entrada);
$entrada = array("rojo", "verde", "azul", "amarillo");
$foo=array_splice($entrada, 1, count($entrada), "naranja");
// $entrada ahora es array("rojo", "naranja")
//$foo es array("verde","azul","amarillo")
muestraTabla($entrada);
muestraTabla($foo);
$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, -1, 1, array("negro", "granate"));
// $entrada ahora es array("rojo", "verde",
// "azul", "negro", "granate")
muestraTabla($entrada);
$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, 3, 0, "púrpura");
// $entrada ahora es array("rojo", "verde",
// "azul", "púrpura", "amarillo");
muestraTabla($entrada);
$tabla=range("a","j");
$a=array_slice($tabla,3);
muestraTabla($a);
$a=array_slice($tabla,3,2);
muestraTabla($a);
$a=array_slice($tabla,-3);
muestraTabla($a);
$a=array_slice($tabla,-3,1);
muestraTabla($a);
$a=array_slice($tabla,-4,-2);
muestraTabla($a);
Funciones Array (III)
Funciones para crear arrays con rangos o valores:
Ejemplos:
function muestraTabla($tabla) {
echo "<pre>";
print_r($tabla);
echo "</pre>";
}
$a = range(1, 5);
muestraTabla($a);
$b = range(1, 100, 10);
muestraTabla($b);
$c = range('a', 'e');
muestraTabla($c);
$d = array_fill(2, 10, "pepe");
muestraTabla($d);
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);
// el resultado es array(12, 10, 9, 0, 0)
muestraTabla($result);
$result = array_pad($input, -7, 4);
// el resultado es array(4, 4, 4, 4, 12, 10, 9)
muestraTabla($result);
$result = array_pad($input, 2, "noop");
// sin relleno
muestraTabla($result);
Funciones array (II)
Pasar de cadena a array y viceversa:
Ejemplos:
function muestraTabla($tabla) {
echo "<pre>";
print_r($tabla);
echo "</pre>";
}
$cadena = "hola que tal estamos";
$tabla = explode(' ', $cadena);
muestraTabla($tabla);
$lista = "jamon,pollo,bistec,fuet";
$carne = explode(",", $lista);
muestraTabla($carne);
$letras = str_split($lista);
muestraTabla($letras);
echo implode('-',$tabla)."<br/>";
echo implode('***-***',$carne)."<br/>";
echo implode('.',$letras)."<br/>";
Funciones array (I)
Número de elementos:
Poner y quitar elementos:
Del final:
Quitar:
array_pop()
Poner:
array_push()
Del principio:
Quitar:
array_shift()
Poner:
array_unshift()
Ejemplos:
function muestraTabla($tabla) {
echo "<pre>";
print_r($tabla);
echo "</pre>";
}
$tabla = array(1, 2, 3, 4, 5);
$tabla = array("a" => 1,
"b" => 2,
"c" => 3,
"d" => 4,
"e" => 5,
);
muestraTabla($tabla);
array_pop($tabla);
muestraTabla($tabla);
array_push($tabla, 99);
muestraTabla($tabla);
array_shift($tabla);
muestraTabla($tabla);
array_unshift($tabla, 200);
muestraTabla($tabla);
Soluciones ejercicios
<?php
$a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]];
echo sumaDiagonal($a);
//Ejercicio 1
function sumaArray($array) {
$suma = 0;
foreach ($array as $fila) {
foreach ($fila as $valor) {
$suma += $valor;
}
}
return $suma;
}
//Ejercicio 2
function sumaColumna($array, $columna) {
$suma = 0;
for ($i = 0; $i < count($array); $i++) {
$suma += $array[$i][$columna];
}
return $suma;
}
function sumaFila($array, $fila) {
$suma = 0;
for ($i = 0; $i < count($array[$fila]); $i++) {
$suma += $array[$fila][$i];
}
return $suma;
}
function sumaDiagonal($array) {
$suma = 0;
for ($i = 0; $i < count($array); $i++) {
$suma += $array[$i][$i];
}
return $suma;
}
Recorrer arrays en php
Para recorrer un array normal podemos usar tanto un for normal como un foreach:
$t=[3,7,23,4];
for($i=0;$i<count($t);$i++){
echo $t[$i]."-";
}
echo "<br/>";
foreach($t as $valor){
echo $valor."-";
}
Para recorrer un array asociativo sólo podemos usar un foreach:
$a=["q"=>1,"w"=>2,"e"=>3];
foreach($a as $valor){
echo $valor."-";
}
Ejemplos arrays en php
Mostrar una tabla con print_r y
para el formato:function muestraTabla($tabla) { echo "<pre>"; print_r($tabla); echo "</pre>"; }Mostrar una tabla bidimensional en formato tabla de HTML:
function creaTabla($tabla) { ?><table><?php foreach ($tabla as $fila) { ?><tr><?php foreach ($fila as $valor) { ?><td><?= $valor ?></td><?php } ?> </tr><?php } ?> </table><?php }Función que nos devuelve el elemento más frecuente de una tabla:
function frecuente($tabla) { $t = array_count_values($tabla); arsort($t); $res = []; $max = array_values($t)[0]; foreach ($t as $clave => $valor) { if ($valor == $max) { $res[] = $clave; } } return $res; }Diagonales:
/* * Nos devuelve un array bidimensional del tamaño que le indiquemos * Relleno de ceros menos la diagonal principal que valdrá 1 * Ejemplo: diagonal(3) * 1 0 0 * 0 1 0 * 0 0 1 */ creaTabla(diagonal2(20)); function diagonal($tam) { $res = []; for ($i = 0; $i < $tam; $i++) { $res[$i] = array_fill(0, $tam, 0); $res[$i][$i] = 1; } return $res; } function diagonal2($tam) { $res = []; for ($i = 0; $i < $tam; $i++) { for ($j = 0; $j < $tam; $j++) { if ($i == $j) { $res[$i][$j] = 1; } else { $res[$i][$j] = 0; } } } return $res; }
Ejemplos funciones con arrays
function calcetin($tabla) {
$res = [];
foreach ($tabla as $clave => $valor) {
$res[$valor] = $clave;
}
return $res;
}
$t = ["a" => 1, "b" => 3, "c" => 1];
muestraTabla($t);
$c = calcetin($t);
muestraTabla($c);
function contar($tabla, $valor) {
$cont = 0;
foreach ($tabla as $v) {
if ($valor == $v) {
$cont++;
}
}
return $cont;
}
echo esUnico1($t);
function esUnico1($tabla) {
foreach ($tabla as $valor) {
if (contar($tabla, $valor) > 1) {
return false;
}
}
return true;
}
function esUnico2($tabla) {
$t = array_count_values($tabla);
foreach ($t as $valor) {
if ($valor > 1) {
return false;
}
}
return true;
}
function esUnico3($tabla){
sort($tabla);
for($i=1;$i<count($tabla);$i++){
if ($tabla[$i]==$tabla[$i-1]){
return false;
}
}
return true;
}
function esUnico4($tabla){
return count($tabla)==count(array_unique($tabla));
}