Array Methods
Array Methods
Operaciones sobre array
count
Permite contar el número de elementos en un array.
$number_elements = [1, 2, 3, 4, 5,];
echo count($number_elements); // 5
current - end - reset
Permite mover el puntero a diferentes posiciones dentro de un array y devuelve el elemento al cual está apuntando el puntero
// **current**
$number_elements = [1, 2, 3, 4, 5,];
$actual = current($number_elements);
// La posicion inicial es 0 asi que devuelve = 1
// **end**
$final = end($number_elements);
// devuelve la ultima posicion = 5;
// **reset**
$initial = reset($number_elements);
// resetea el puntero, vuelve a posicion inicial
array_search
Permite buscar en un array por un contenido. Si lo encuentra devuelve el índice de la primera coincidencia. Sino lo encuentra devuelve false, sensible a mayusculas y minusculas
$dias = array("lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo");
$search_result_index = array_search("viernes", $dias);
if($search_result_index){
echo "Elemento encontrado en la posicion $search_result_index";
}else{
echo "Elemento no encontrado";
}
in_array
Devuelve true si el elemento está en el array, sino devuelve false
in_array("lunes",$dias);
// true o false, dependiendo de si encuentra el elemento en el array
in_array("lunes", $dias, true);
//strict mode, comprueba que el tipo sea el mismo tambien
Ordenar arrays
sort or rsort(inversa)
Ordena los elementos, cambiandoles también la posición
// Ordena el contenido de forma alfabetica, tener en cuenta que los primeros
// elementos son movidos al principio del array, por lo que el valor[0] no sera
//el mismo valor despues de ordenar
$diasSemana = array("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo");
sort($diasSemana);
var_dump($diasSemana);
asort
Ordena los elementos pero siguen teniendo el mismo índice
$diasSemana = array("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo");
asort($diasSemana);
var_dump($diasSemana);
ksort
Ordena el array pero por las claves, en un array indexado no hace nada. Pero en los arrays asociativos se ordena por la key
$numeros_asociativos = array(3 => "Tres", 2 => "Dos", 1 => "Uno");
ksort($numeros_asociativos);
var_dump($numeros_asociativos);
shuffle
Cambia el orden del array de forma aleatoria, cambiando también sus índices
$numeros_ordenados = array(1,2,3,4,5,6,7,8,9);
shuffle($numeros_ordenados);
var_dump($numeros_ordenados);
explode
Divide una cadena en varias cadenas, separandola por un delimitador. Si no se especifica el delimitador o es una cadena sin nada, devuelve error. El limite puede ser tanto positivo como negativo. un -1 en el limite devuelve todos los elementos menos el ultimo
An empty input string will still result in one element in the output array. This is something to remember when you are processing unknown input
// Explode
$cadena = 'Hello World';
$expl = explode(' ', $cadena, 1);
var_dump($expl); // ['Hello']
$cadena = 'Hello World que';
$expl = explode(' ', $cadena, -1);
var_dump($expl); // ['Hello', 'World']
implode
Junta todos los elementos de un array, en una cadena, especificando el separador.
//Implode
$array = array('Hello', 'World');
$cadena = implode(',', $array);
echo $cadena; // Hello,World
Modificar un array
push & pop & unshift &shift
Las principales funciones para modificar un array son las mismas que para javascript.
push -> añade al final
pop -> quita del final unshift -> añade al principio
shift -> quita del principio
$numeros = [1, 2, 3,];
array_push($numeros, 4); // [1, 2, 3, 4]
array_pop($numeros); // [1, 2, 3]
array_unshift($numeros, 0); // [0, 1, 2, 3]
array_shift($numeros); // [1, 2, 3]
var_dump($numeros);
Operaciones entre arrays
array_diff
Devuelve todos los elementos del primer array, que no están en los siguientes arrays. Con que el elemento exista en algún array, ese elemento no lo devuelve. Solamente devuelve el elemento que no existe en ninguno de los otros arrays
// Ejemplo con array indexado
$numeros1 = array(11, 22, 33);
$numeros2 = array(11, 33, 55);
$numeros3 = array(10, 9, 8);
$diferenciasNumeros = array_diff($numeros1,$numeros2, $numeros3); // 22
// El unico elemento que no esta en los otros arrays es el 22
var_dump($diferenciasNumeros);
// Ejemplo con array asociativo
// Los elementos string tienen que coincidir exactamente
$colores1 = array("color1" => "Verde", "color2" => "Azul", "color3" => "Naranja");
$colores2 = array("color1" => "verde", "color2" => "Amarillo", "color3" => "Naranja");
$diferenciasColores = array_diff($colores1, $colores2); // [Verde, Azul]
// El verde no coincide exactamente y el azul no esta en el otro array
var_dump($diferenciasColores);
array_merge
Permite unir dos o más arrays. Cada array es añadido al final del primer array en orden.
// array_merge
$a = array("Verde", "Azul");
$b = array("Rojo", "Naranja");
$c = array("Sin color1", "Sin color2");
$union = array_merge($a, $b, $c);
var_dump($union);
array_intersect
Devuelve todos los elementos comunes de varios arrays
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$array3 = [5, 6, 7, 8, 9];
$resultado = array_intersect($array1, $array2, $array3);
print_r($resultado);
// resultado
Array
(
[4] => 5 // El 5 esta presente en todos los arrays
)