PHP 8.4.2 Released!

Arrays

  • Introducción
  • Instalación/Configuración
  • Constantes predefinidas
  • Ordenamiento de arrays
  • Funciones de Arrays
    • array — Crea un array
    • array_all — Checks if all array elements satisfy a callback function
    • array_any — Checks if at least one array element satisfies a callback function
    • array_change_key_case — Cambia a mayúsculas o minúsculas todas las claves en un array
    • array_chunk — Divide un array en fragmentos
    • array_column — Devuelve los valores de una sola columna del array de entrada
    • array_combine — Crea un nuevo array, usando una matriz para las claves y otra para sus valores
    • array_count_values — Cuenta todos los valores de un array
    • array_diff — Calcula la diferencia entre arrays
    • array_diff_assoc — Calcula la diferencia entre arrays con un chequeo adicional de índices
    • array_diff_key — Calcula la diferencia entre arrays empleando las claves para la comparación
    • array_diff_uassoc — Calcula la diferencia entre arrays con un chequeo adicional de índices que se realiza por una función de devolución de llamada suministrada por el usuario
    • array_diff_ukey — Calcula la diferencia entre arrays usando una función de devolución de llamada en las keys para comparación
    • array_fill — Llena un array con valores
    • array_fill_keys — Llena un array con valores, especificando las keys
    • array_filter — Filtra elementos de un array usando una función de devolución de llamada
    • array_find — Returns the first element satisfying a callback function
    • array_find_key — Returns the key of the first element satisfying a callback function
    • array_flip — Intercambia todas las claves de un array con sus valores asociados
    • array_intersect — Calcula la intersección de arrays
    • array_intersect_assoc — Calcula la intersección de arrays con un chequeo adicional de índices
    • array_intersect_key — Calcula la intersección de arrays usando sus claves para la comparación
    • array_intersect_uassoc — Calcula la intersección de arrays con una comprobación adicional de índices, los cuales se comparan con una función de retrollamada
    • array_intersect_ukey — Calcula la intersección de arrays usando una función de devolución de llamada en las claves para la comparación
    • array_is_list — Checks whether a given array is a list
    • array_key_exists — Verifica si el índice o clave dada existe en el array
    • array_key_first — Obtiene la primera clave de un array
    • array_key_last — Obtiene la última clave de un array
    • array_keys — Devuelve todas las claves de un array o un subconjunto de claves de un array
    • array_map — Aplica la retrollamada a los elementos de los arrays dados
    • array_merge — Combina dos o más arrays
    • array_merge_recursive — Une dos o más arrays recursivamente
    • array_multisort — Ordena varios arrays, o arrays multidimensionales
    • array_pad — Rellena un array a la longitud especificada con un valor
    • array_pop — Extrae el último elemento del final del array
    • array_product — Calcula el producto de los valores de un array
    • array_push — Inserta uno o más elementos al final de un array
    • array_rand — Seleccionar una o más claves aleatorias de un array
    • array_reduce — Reduce iterativamente un array a un solo valor usando una función llamada de retorno
    • array_replace — Reemplaza los elementos del array original con elementos de array adicionales
    • array_replace_recursive — Reemplaza los elementos de los arrays pasados al primer array de forma recursiva
    • array_reverse — Devuelve un array con los elementos en orden inverso
    • array_search — Busca un valor determinado en un array y devuelve la primera clave correspondiente en caso de éxito
    • array_shift — Quita un elemento del principio del array
    • array_slice — Extraer una parte de un array
    • array_splice — Elimina una porción del array y la reemplaza con otra cosa
    • array_sum — Calcular la suma de los valores de un array
    • array_udiff — Computa la diferencia entre arrays, usando una llamada de retorno para la comparación de datos
    • array_udiff_assoc — Computa la diferencia entre arrays con una comprobación de indices adicional, compara la información mediante una función de llamada de retorno
    • array_udiff_uassoc — Computa la diferencia entre arrays con una verificación de índices adicional, compara la información y los índices mediante una función de llamada de retorno
    • array_uintersect — Computa una intersección de arrays, compara la información mediante una función de llamada de retorno
    • array_uintersect_assoc — Calcula la intersección de arrays con una comprobación de índices adicional, compara la información mediante una función de retrollamada
    • array_uintersect_uassoc — Calcula la intersección de arrays con una comprobación de índices adicional, compara la información y los índices mediante funciones de retrollamada por separado
    • array_unique — Elimina valores duplicados de un array
    • array_unshift — Añadir al inicio de un array uno a más elementos
    • array_values — Devuelve todos los valores de un array
    • array_walk — Aplicar una función proporcionada por el usuario a cada miembro de un array
    • array_walk_recursive — Aplicar una función de usuario recursivamente a cada miembro de un array
    • arsort — Ordena un array en orden inverso y mantiene la asociación de índices
    • asort — Ordena un array y mantiene la asociación de índices
    • compact — Crear un array que contiene variables y sus valores
    • count — Cuenta todos los elementos de un array o algo de un objeto
    • current — Devuelve el elemento actual en un array
    • each — Devolver el par clave/valor actual de un array y avanzar el cursor del array
    • end — Establece el puntero interno de un array a su último elemento
    • extract — Importar variables a la tabla de símbolos actual desde un array
    • in_array — Comprueba si un valor existe en un array
    • key — Obtiene una clave de un array
    • key_exists — Alias de array_key_exists
    • krsort — Ordena un array por clave en orden inverso
    • ksort — Ordena un array por clave
    • list — Asignar variables como si fueran un array
    • natcasesort — Ordenar un array usando un algoritmo de "orden natural" insensible a mayúsculas-minúsculas
    • natsort — Ordena un array usando un algoritmo de "orden natural"
    • next — Avanza el puntero interno de un array
    • pos — Alias de current
    • prev — Rebobina el puntero interno del array
    • range — Crear un array que contiene un rango de elementos
    • reset — Establece el puntero interno de un array a su primer elemento
    • rsort — Ordena un array en orden inverso
    • shuffle — Mezcla un array
    • sizeof — Alias de count
    • sort — Ordena un array
    • uasort — Ordena un array con una función de comparación definida por el usuario y mantiene la asociación de índices
    • uksort — Ordena un array según sus claves usando una función de comparación definida por el usuario
    • usort — Ordena un array según sus valores usando una función de comparación definida por el usuario
add a note

User Contributed Notes 10 notes

up
107
applegrew at rediffmail dot com
16 years ago
For newbies like me.

Creating new arrays:-
//Creates a blank array.
$theVariable = array();

//Creates an array with elements.
$theVariable = array("A", "B", "C");

//Creating Associaive array.
$theVariable = array(1 => "http//google.com", 2=> "http://yahoo.com");

//Creating Associaive array with named keys
$theVariable = array("google" => "http//google.com", "yahoo"=> "http://yahoo.com");

Note:
New value can be added to the array as shown below.
$theVariable[] = "D";
$theVariable[] = "E";
up
20
Tyler Bannister
15 years ago
To delete an individual array element use the unset function

For example:

<?PHP
$arr
= array( "A", "B", "C" );
unset(
$arr[1] );
// now $arr = array( "A", "C" );
?>

Unlink is for deleting files.
up
6
macnimble at gmail dot com
15 years ago
Converting a linear array (like a mysql record set) into a tree, or multi-dimensional array can be a real bugbear. Capitalizing on references in PHP, we can 'stack' an array in one pass, using one loop, like this:

<?php
# array_stack()
# Original idea from:
# http://www.ideashower.com/our_solutions/
# create-a-parent-child-array-structure-in-one-pass/
function array_stack (&$a, $p = '@parent', $c = '@children')
{
$l = $t = array();
foreach (
$a AS $key => $val):
if (!
$val[$p]) $t[$key] =& $l[$key];
else
$l[$val[$p]][$c][$key] =& $l[$key];
$l[$key] = (array)$l[$key] + $val;
endforeach;
return
$a = array('tree' => $t, 'leaf' => $l);
}

# Example:
$node = array();
$node[1] = array('@parent' => 0, 'title' => 'I am node 1.');
# ^-----------------------v Link @parent value to key.
$node[2] = array('@parent' => 1, 'title' => 'I am node 2.');
$node[3] = array('@parent' => 2, 'title' => 'I am node 3.');
$node[4] = array('@parent' => 1, 'title' => 'I am node 4.');
$node[5] = array('@parent' => 4, 'title' => 'I am node 5.');

array_stack($node);

$node['leaf'][1]['title'] = 'I am node one.';
$node['leaf'][2]['title'] = 'I am node two.';
$node['leaf'][3]['title'] = 'I am node three.';
$node['leaf'][4]['title'] = 'I am node four.';
$node['leaf'][5]['title'] = 'I am node five.';

echo
'<pre>',print_r($node['tree'],TRUE),'</pre>';
?>

Note that there's no parameter checking on the array value, but this is only to keep the function size small. One could easily a quick check in there to make sure the $a parameter was in fact an array.

Hope you find it useful. Huge thanks to Nate Weiner of IdeaShower.com for providing the original function I built on.
up
2
webmaster at infoproducts dot x10hosting dot com
16 years ago
New value can also be added to the array as shown below.
$theVariable["google"] = "http//google.com";
or
$theVariable["1"] = "http//google.com";
up
2
dragos dot rusu at NOSPAM dot bytex dot ro
14 years ago
If an array item is declared with key as NULL, array key will automatically be converted to empty string '', as follows:

<?php
$a
= array(
NULL => 'zero',
1 => 'one',
2 => 'two');

// This will show empty string for key associated with "zero" value
var_dump(array_keys($a));

// Array elements are shown
reset($a);
while(
key($a) !== NULL )
{
echo
key($a) . ": ".current($a) . "<br>";// PHP_EOL
next($a);
}

// Array elements are not shown
reset($a);
while(
key($a) != NULL ) // '' == null => no iteration will be executed
{
echo
key($a) . ": ".current($a) . "<br>";// PHP_EOL
next($a);
}
up
-1
andyd273 at gmail dot com
15 years ago
A small correction to Endel Dreyer's PHP array to javascript array function. I just changed it to show keys correctly:

function array2js($array,$show_keys)
{
$dimensoes = array();
$valores = array();

$total = count ($array)-1;
$i=0;
foreach($array as $key=>$value){
if (is_array($value)) {
$dimensoes[$i] = array2js($value,$show_keys);
if ($show_keys) $dimensoes[$i] = '"'.$key.'":'.$dimensoes[$i];
} else {
$dimensoes[$i] = '"'.addslashes($value).'"';
if ($show_keys) $dimensoes[$i] = '"'.$key.'":'.$dimensoes[$i];
}
if ($i==0) $dimensoes[$i] = '{'.$dimensoes[$i];
if ($i==$total) $dimensoes[$i].= '}';
$i++;
}
return implode(',',$dimensoes);
}
up
-1
sunear at gmail dot com
15 years ago
Made this function to delete elements in an array;

<?php

function array_del_elm($input_array, $del_indexes) {
if (
is_array($del_indexes)) {
$indexes = $del_indexes;
} elseif(
is_string($del_indexes)) {
$indexes = explode($del_indexes, " ");
} elseif(
is_numeric($del_indexes)) {
$indexes[0] = (integer)$del_indexes;
} else return;
$del_indexes = null;

$cur_index = 0;
if (
sort($indexes)) for($i=0; $i<count($input_array); $i++) {
if (
$i == $indexes[$cur_index]) {
$cur_index++;
if (
$cur_index == count($indexes)) return $output_array;
continue;
}
$output_array[] = $input_array[$i];
}
return
$output_array;
}

?>

but then i saw the methods of doing the same by Tyler Bannister & Paul, could see that theirs were faster, but had floors regarding deleting multiple elements thus support of several ways of giving parameters. I combined the two methods to this to this:

<?php

function array_del_elm($target_array, $del_indexes) {
if (
is_array($del_indexes)) {
$indexes = $del_indexes;
} elseif(
is_string($del_indexes)) {
$indexes = explode($del_indexes, " ");
} elseif(
is_numeric($del_indexes)) {
$indexes[0] = (integer)$del_indexes;
} else return;
unset(
$del_indexes);

for(
$i=0; $i<count($indexes); $i++) {
unset(
$target_array[$indexes[$i]]);
}
return
$target_array;
}

?>

Fast, compliant and functional ;)
up
-4
web at houhejie dot cn
7 years ago
string2array($str):

$arr=json_decode('["fileno",["uid","uname"],"topingid",["touid",[1,2,[3,4]],"touname"]]');
print_r($arr);

output:
Array ( [0] => fileno [1] => Array ( [0] => uid [1] => uname ) [2] => topingid [3] => Array ( [0] => touid [1] => Array ( [0] => 1 [1] => 2 [2] => Array ( [0] => 3 [1] => 4 ) ) [2] => touname ) )

when I hope a function string2array($str), "spam2" suggest this. and It works well~~~hope this helps us, and add to the Array function list
up
-4
justin at jmfrazier dot com
4 years ago
Using null as the key when setting an array value is NOT the same as using empty [].
<?php
$null
= null;
$testArray = [];
$testArray[$null] = 1;
$testArray[$null] = 2;
$testArray[$null] = 3;
$testArray[$null] = 4;
var_dump($testArray);
?>
Output:
array(1) {
'' =>
int(4)
}

<?php
$testArray
= [];
$testArray[null] = 1;
$testArray[null] = 2;
$testArray[null] = 3;
$testArray[null] = 4;
var_dump($testArray);
?>
Output:
array(1) {
'' =>
int(4)
}

<?php
$testArray
= [];
$testArray[] = 1;
$testArray[] = 2;
$testArray[] = 3;
$testArray[] = 4;
var_dump($testArray);
?>
Output:
array(4) {
[0] =>
int(1)
[1] =>
int(2)
[2] =>
int(3)
[3] =>
int(4)
}
up
-4
info at curtinsNOSPAMcreations dot com
14 years ago
Another way to create a multidimensional array that looks a lot cleaner is to use json_decode. (Note that this probably adds a touch of overhead, but it sure does look nicer.) You can of course add as many levels and as much formatting as you'd like to the string you then decode. Don't forget that json requires " around values, not '!! (So, you can't enclose the json string with " and use ' inside the string.)

As an example:

<?php
$myarray
['blah'] = json_decode('[
{"label":"foo","name":"baz"},
{"label":"boop","name":"beep"}
]'
,true);

print_r($myarray)
?>
returns:

Array
(
[blah] => Array
(
[0] => Array
(
[label] => foo
[name] => baz
)

[1] => Array
(
[label] => boop
[name] => beep
)
)
)
To Top