Array Funzioni

Vedere anche:

Vedere anche le funzioni is_array(), explode(), implode(), preg_split() e unset().

Indice dei contenuti

  • 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 4 notes

up
10
et2225zas14 at susu dot ru
6 months 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
21
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
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
-1
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