PHP 8.4.2 Released!

Arrays

  • Introduzione
  • Costanti predefinite
  • Sorting Arrays
  • Array Funzioni
    • 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 — Restituisce un array con tutte le chiavi cambiate in maiuscolo o in minuscolo
    • array_chunk — Spezza un array in tronconi
    • array_column — Return the values from a single column in the input array
    • array_combine — Crea un'array utilizzando un'array per le chiavi ed un altro per i suoi valori
    • array_count_values — Conta tutti i valori di un array
    • array_diff — Calcola la differenza di due o più array
    • array_diff_assoc — Calcola la differenza tra array con un ulteriore controllo sull'indice
    • array_diff_key — Computes the difference of arrays using keys for comparison
    • array_diff_uassoc — Computes the difference of arrays with additional index check which is performed by a user supplied callback function
    • array_diff_ukey — Computes the difference of arrays using a callback function on the keys for comparison
    • array_fill — Riempie un array con i valori specificati
    • array_fill_keys — Fill an array with values, specifying keys
    • array_filter — Filtra gli elementi di un array usando una funzione callback
    • 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 — Scambia tutte le chiavi di un array con i loro valori associati
    • array_intersect — Calcola l'intersezione degli arrays
    • array_intersect_assoc — Calcola l'intersezione degli array con un ulteriore controllo sugli indici
    • array_intersect_key — Computes the intersection of arrays using keys for comparison
    • array_intersect_uassoc — Computes the intersection of arrays with additional index check, compares indexes by a callback function
    • array_intersect_ukey — Computes the intersection of arrays using a callback function on the keys for comparison
    • array_is_list — Checks whether a given array is a list
    • array_key_exists — Controlla se l'indice o la chiave specificato esiste nell'array
    • array_key_first — Gets the first key of an array
    • array_key_last — Gets the last key of an array
    • array_keys — Restituisce tutte le chiavi di un array
    • array_map — Applica la funzione callback a tutti gli elementi degli array dati
    • array_merge — Fonde uno o più array
    • array_merge_recursive — Fonde due o più array in modo ricorsivo
    • array_multisort — Ordina array multipli o multidimensionali
    • array_pad — Riempie con un valore un array fino alla lunghezza specificata
    • array_pop — Estrae l'elemento alla fine dell'array
    • array_product — Calculate the product of values in an array
    • array_push — Accoda uno o più elementi ad un array
    • array_rand — Estrae a caso uno o più elementi da un array
    • array_reduce — Riduce iterativamente l'array a un singolo valore utilizzando una funzione callback
    • array_replace — Replaces elements from passed arrays into the first array
    • array_replace_recursive — Replaces elements from passed arrays into the first array recursively
    • array_reverse — Restituisce un array con gli elementi in ordine invertito
    • array_search — Ricerca un dato valore in un array e ne restituisce la chiave corrispondente, se la ricerca ha successo.
    • array_shift — Estrae l'elemento alla testa dell'array
    • array_slice — Estrae un sottoinsieme da un array
    • array_splice — Rimuove una porzione dell'array e la sostituisce con altro
    • array_sum — Calcola la somma dei valori di un array
    • array_udiff — Computes the difference of arrays by using a callback function for data comparison
    • array_udiff_assoc — Computes the difference of arrays with additional index check, compares data by a callback function
    • array_udiff_uassoc — Computes the difference of arrays with additional index check, compares data and indexes by a callback function
    • array_uintersect — Computes the intersection of arrays, compares data by a callback function
    • array_uintersect_assoc — Computes the intersection of arrays with additional index check, compares data by a callback function
    • array_uintersect_uassoc — Computes the intersection of arrays with additional index check, compares data and indexes by separate callback functions
    • array_unique — Rimuove i valori duplicati di un array
    • array_unshift — Inserisce uno o più elementi all'inizio dell'array
    • array_values — Restituisce tutti i valori di un array
    • array_walk — Esegue una funzione su ogni elemento dell'array
    • array_walk_recursive — Apply a user function recursively to every member of an array
    • arsort — Ordina un array in ordine decrescente e mantiene le associazioni degli indici
    • asort — Ordina un array e mantiene le associazioni degli indici
    • compact — Crea un array contenente variabili e il loro valore
    • count — Conta gli elementi in una variabile, o le proprietà in un oggetto
    • current — Restituisce l'elemento corrente di un array
    • each — Restituisce la corrente coppia chiave/valore di un array e incrementa il puntatore dell'array
    • end — Sposta il puntatore interno dell'array all'ultimo elemento
    • extract — Importa le variabili nella tabella dei simboli corrente da un array
    • in_array — Controlla se un valore è presente in un array
    • key — Estrae la chiave corrente da un array associativo
    • key_exists — Alias di array_key_exists
    • krsort — Ordina rispetto alle chiavi di un array in ordine inverso
    • ksort — Ordina rispetto alle chiavi di un array
    • list — Assegna valori a delle variabili come se fossero un array
    • natcasesort — Ordina un array usando un algoritmo di "ordine naturale" non sensibile alle maiuscole/minuscole
    • natsort — Ordina un array usando un algoritmo di "ordine naturale"
    • next — Incrementa il puntatore interno dell'array
    • pos — Alias di current
    • prev — Decrementa il puntatore interno dell'array
    • range — Crea un array contenente una serie di elementi
    • reset — Reimposta il puntatore interno di un array sulla posizione iniziale
    • rsort — Ordina un array in ordine decrescente
    • shuffle — Mescola un array
    • sizeof — Alias di count
    • sort — Ordina un array
    • uasort — Ordina un array mediante una funzione definita dall'utente e mantiene le associazioni
    • uksort — Ordina rispetto alle chiavi di un array mediante una funzione definita dall'utente
    • usort — Ordina un array mediante una funzione definita dall'utente
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