PHP 8.3.21 Released!

Funciones de Arrays

Ver también

Ver también is_array(), explode(), implode(), preg_split(), and unset().

Tabla de contenidos

  • array — Crea un array
  • array_all — Verifica si todos los elementos del array validan la función de retrollamada
  • array_any — Verifica que al menos un elemento del array valide la función de retrollamada
  • array_change_key_case — Cambia la casse de todas las claves de un array
  • array_chunk — Divide un array en arrays de menor tamaño
  • array_column — Devuelve los valores de una columna de un array de entrada
  • array_combine — Crea un array a partir de otros dos arrays
  • array_count_values — Cuenta las ocurrencias de cada valor distinto en un array
  • array_diff — Calcula la diferencia entre arrays
  • array_diff_assoc — Calcula la diferencia de dos arrays, teniendo en cuenta las claves
  • array_diff_key — Calcula la diferencia de dos arrays utilizando las claves para la comparación
  • array_diff_uassoc — Calcula la diferencia entre dos arrays asociativos, utilizando una función de retrollamada
  • array_diff_ukey — Calcula la diferencia entre dos arrays utilizando una función de retrollamada sobre las claves para comparación
  • array_fill — Rellena un array con un mismo valor
  • array_fill_keys — Rellena un array con valores, especificando las claves
  • array_filter — Filtra los elementos de un array mediante una función de retrollamada
  • array_find — Devuelve el primer elemento que valida la función de retrollamada
  • array_find_key — Devuelve la clave del primer elemento que valida la función de retrollamada
  • array_flip — Reemplaza las claves por los valores, y los valores por las claves
  • array_intersect — Calcula la intersección de arrays
  • array_intersect_assoc — Calcula la intersección de dos arrays con pruebas sobre los índices
  • array_intersect_key — Calcula la intersección de dos arrays utilizando las claves para la comparación
  • array_intersect_uassoc — Calcula la intersección de dos arrays con pruebas en los índices, compara los índices utilizando una función de retrollamada
  • array_intersect_ukey — Calcula la intersección de dos arrays utilizando una función de retrollamada sobre las claves para la comparación
  • array_is_list — Verifica si un array dado es una lista
  • array_key_exists — Verifica si una clave existe en un array
  • array_key_first — Recupera la primera clave de un array
  • array_key_last — Recupera la última clave de un array
  • array_keys — Devuelve todas las claves o un conjunto de las claves de un array
  • array_map — Aplica una función a los elementos de un array
  • array_merge — Fusiona varios arrays en uno solo
  • array_merge_recursive — Combina uno o varios arrays juntos, de manera recursiva
  • array_multisort — Ordena los arrays multidimensionales
  • array_pad — Completa un array con un valor hasta la longitud especificada
  • array_pop — Desapila un elemento del final de un array
  • array_product — Calcula el producto de los valores del array
  • array_push — Apila uno o más elementos al final de un array
  • array_rand — Toma una o varias claves, al azar en un array
  • array_reduce — Reduce itérativemente un array
  • array_replace — Sustituye los elementos de un array por los de otros arrays
  • array_replace_recursive — Sustituye recursivamente en el primer array los elementos de los otros arrays proporcionados
  • array_reverse — Invierte el orden de los elementos de un array
  • array_search — Busca en un array la primera clave asociada al valor
  • array_shift — Despila un elemento al principio de un array
  • array_slice — Extrae una porción de array
  • array_splice — Elimina y reemplaza una porción de array
  • array_sum — Calcula la suma de los valores del array
  • array_udiff — Calcula la diferencia entre dos arrays utilizando una función de retrollamada
  • array_udiff_assoc — Calcula la diferencia entre arrays con verificación de índices, compara los datos con una función de retrollamada
  • array_udiff_uassoc — Calcula la diferencia de dos arrays asociativos, compara los datos y los índices con una función de retrollamada
  • array_uintersect — Calcula la intersección de dos arrays, compara los datos utilizando una función de retrollamada
  • array_uintersect_assoc — Calcula la intersección de dos arrays con pruebas sobre el índice, compara los datos utilizando una función de retrollamada
  • array_uintersect_uassoc — Calcula la intersección de dos arrays con pruebas en el índice, compara los datos y los índices de los dos arrays utilizando una función de retrollamada separada
  • array_unique — Elimina los valores duplicados de un array
  • array_unshift — Empila uno o más elementos al inicio de un array
  • array_values — Devuelve todos los valores de un array
  • array_walk — Ejecuta una función proporcionada por el usuario en cada uno de los elementos de un array
  • array_walk_recursive — Aplica una función de retrollamada de manera recursiva a cada miembro de un array
  • arsort — Ordena un array en orden descendente y conserva la asociación de los índices
  • asort — Ordena un array en orden ascendente y conserva la asociación de los índices
  • compact — Crea un array a partir de variables y su valor
  • count — Cuenta todos los elementos de un array o en un objeto Countable
  • current — Devuelve el elemento actual del array
  • each — Devuelve cada par clave/valor de un array
  • end — Posiciona el puntero del array al final del array
  • extract — Importa las variables en la tabla de símbolos
  • in_array — Indica si un valor pertenece a un array
  • key — Devuelve una clave de un array asociativo
  • key_exists — Alias de array_key_exists
  • krsort — Ordena un array según las claves en orden descendente
  • ksort — Ordena un array según las claves en orden ascendente
  • list — Asigna variables como si fueran un array
  • natcasesort — Ordena un array con el algoritmo de "orden natural" insensible a mayúsculas y minúsculas
  • natsort — Ordena un array con el algoritmo de "orden natural"
  • next — Avance el puntero interno de un array
  • pos — Alias de current
  • prev — Retrocede el puntero actual del array
  • range — Crea un array que contiene un intervalo de elementos
  • reset — Reinicia el puntero interno del array al principio
  • rsort — Ordena un array en orden decreciente
  • shuffle — Mezcla los elementos de un array
  • sizeof — Alias de count
  • sort — Ordena un array en orden creciente
  • uasort — Ordena un array utilizando una función de retrollamada
  • uksort — Ordena un array por sus claves utilizando una función de retrollamada
  • usort — Ordena un array utilizando una función de comparación
add a note

User Contributed Notes 4 notes

up
19
permanovd at gmail dot com
6 years ago
A simple trick that can help you to guess what diff/intersect or sort function does by name.

[suffix] assoc - additional index check. Compares both value and index.

Example: array_diff_assoc, array_intersect_assoc.

[suffix] key - index only check. Ignores value of array, compares only indexes.

Example: array_diff_key, array_intersect_key.

[suffix] **empty** - no "key" or "assoc" word in suffix. Compares values only. Ignores indexes of array.

Example: array_diff, array_intersect.

[prefix] u - will do comparison with user defined function. Letter u can be used twice in some functions (like array_udiff_uassoc), this means that you have to use 2 functions (one for value, one for index).

Example: array_udiff_uassoc, array_uintersect_assoc.

This also works with array sort functions:

[prefix] a - associative. Will preserve keys.

Example: arsort, asort.

[prefix] k - key sort. Will sort array by keys.

Example: uksort, ksort.

[prefix] r - reverse. Will sort array in reverse order.

Example: rsort, krsort.

[prefix] u - sort by user defined function (same as for diff/intersect).

Example: usort, uasort.
up
10
et2225zas14 at susu dot ru
1 year ago
Be careful with type hints in callbacks when using array-traverse functions. In some cases, this may silently cause the data type of elements to change.

<?php
declare(strict_types=1);

// Missing fatal TypeError, No side effects
$unexpected = array_filter(['123', (string) PHP_INT_MAX], fn (int $item) => true);
var_dump($unexpected);

// Missing fatal TypeError, Typecasting side effect
$unexpectedTypecasting = array_map(fn (int $item) => $item, ['123', (string) PHP_INT_MAX]);
var_dump($unexpectedTypecasting);

// Missing fatal TypeError, Typecasting side effect
$unexpectedTypecasting = array_map(fn (string $item) => $item, [123, PHP_INT_MAX]);
var_dump($unexpectedTypecasting);

// Missing fatal TypeError, Typecasting side effect
$unexpectedTypecasting = array_reduce(['123', (string) PHP_INT_MAX], fn (?int $carry, int $item) => $item);
var_dump($unexpectedTypecasting);

$bigIntValue = bcadd((string) PHP_INT_MAX, '1');
// Fatal TypeError
$expectedTypeError = array_map(fn (int $item) => $item, [$bigIntValue]);
var_dump($expectedTypeError);
?>

The above example will output (PHP version 8.3.6, error_reporting E_ALL):

<?php
array(2) {
[
0]=>
string(3) "123"
[1]=>
string(19) "9223372036854775807"
}
array(
2) {
[
0]=>
int(123)
[
1]=>
int(9223372036854775807)
}
array(
2) {
[
0]=>
string(3) "123"
[1]=>
string(19) "9223372036854775807"
}
int(9223372036854775807)

Fatal error: Uncaught TypeError: {closure}(): Argument #1 ($item) must be of type int, string given
?>
up
5
renatonascto at gmail dot com
16 years ago
Big arrays use a lot of memory possibly resulting in memory limit errors. You can reduce memory usage on your script by destroying them as soon as you´re done with them. I was able to get over a few megabytes of memory by simply destroying some variables I didn´t use anymore.
You can view the memory usage/gain by using the funcion memory_get_usage(). Hope this helps!
up
0
indioeuropeo at driverop dot com
5 years ago
I need to take an element from the Array and change its position within the Array by moving the rest of the elements as required.
This is the function that does it. The first parameter is the working Array. The second is the position of the element to move and the third is the position where to move the element.
The function returns the modified Array.
<?php
function array_move_elem($array, $from, $to) {
if (
$from == $to) { return $array; }
$c = count($array);
if ((
$c > $from) and ($c > $to)) {
if (
$from < $to) {
$f = $array[$from];
for (
$i = $from; $i < $to; $i++) {
$array[$i] = $array[$i+1];
}
$array[$to] = $f;
} else {
$f = $array[$from];
for (
$i = $from; $i > $to; $i--) {
$array[$i] = $array[$i-1];
}
$array[$to] = $f;
}

}
return
$array;
}

?>
Examples:
<?php
$array
= array('Cero','Uno','Dos','Tres','Cuatro','Cinco','Seis','Siete','Ocho','Nueve','Diez');
$array = array_move_elem($array, 3, 5); // Move element in position 3 to position 5...
print_r($array);

$array = array_move_elem($array, 5, 3); // Move element in position 5 to position 3, leaving array as it was... ;)
print_r($array);

?>
Return:
<?php
Array ( [0] => Cero [1] => Uno [2] => Dos [3] => Cuatro [4] => Cinco [5] => Tres [6] => Seis [7] => Siete [8] => Ocho [9] => Nueve [10] => Diez )
Array ( [
0] => Cero [1] => Uno [2] => Dos [3] => Tres [4] => Cuatro [5] => Cinco [6] => Seis [7] => Siete [8] => Ocho [9] => Nueve [10] => Diez )
?>
To Top
OSZAR »