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)); }