diff --git a/reference/array/functions/array-change-key-case.xml b/reference/array/functions/array-change-key-case.xml index a8e276c4b..45b76a0d0 100644 --- a/reference/array/functions/array-change-key-case.xml +++ b/reference/array/functions/array-change-key-case.xml @@ -1,21 +1,23 @@ - + + + array_change_key_case - Restituisce un array con tutte le chiavi cambiate in maiuscolo o in minuscolo + Cambia case a tutte le chiavi dell'array &reftitle.description; arrayarray_change_key_case - arrayinput - intcaseCASE_LOWER + arrayarray + intcaseCASE_LOWER - Restituisce un array con tutte le chiavi in input cambiate - in maiuscolo o minuscolo. Gli indici numerati non sono modificati. + Restituisce un array con tutte le chiavi di un array convertite + in maiuscolo o minuscolo. Gli indici numerici non vengono modificati. @@ -25,10 +27,10 @@ - input + array - L'array su cui lavorare + L'array da elaborare @@ -50,16 +52,7 @@ &reftitle.returnvalues; - Restituisce un array con le chiavi convertite in maiuscolo o minuscolo, oppure &false; se - input non è un array. - - - - - &reftitle.errors; - - Lancia un E_WANRING se input - non è un array. + Restituisce un'array con le chiavi convertite in maiuscolo o minuscolo. diff --git a/reference/array/functions/array-chunk.xml b/reference/array/functions/array-chunk.xml index c0da003aa..d36c5e8c4 100644 --- a/reference/array/functions/array-chunk.xml +++ b/reference/array/functions/array-chunk.xml @@ -1,22 +1,24 @@ - + + + array_chunk - Spezza un array in tronconi + Divide un array in più subarray &reftitle.description; arrayarray_chunk - arrayinput - intsize - boolpreserve_keysfalse + arrayarray + intlength + boolpreserve_keys&false; - Spezza l'array in più array di dimensione size. - L'ultimo array potrebbe ovviamente avere una dimensione inferiore. + Divide l'array in più array di dimensione length. + L'ultimo array potrebbe avere ovviamente una dimensione inferiore. @@ -26,16 +28,16 @@ - input + array - L'array su cui lavorare + L'array da modificare - size + length La dimensione di ogni pezzo @@ -47,8 +49,8 @@ preserve_keys - Quando è &true; le chiavi sono mantenute. - Il default è &false; che reindicizza le chiavi con valori numerici + Quando è impostato a &true; le chiavi sono mantenute. + Il valore di default è &false; che reindicizza le chiavi con valori numerici @@ -60,19 +62,44 @@ &reftitle.returnvalues; - Restituisce un array multidimensionale indicizzato numericamente, a partire da zero, - con ogni dimensione contenente size elementi. + Restituisce un array multidimensionale indicizzato numericamente, a partire da zero, + con ogni dimensione contenente lenght elementi. &reftitle.errors; - Se size è minore di 1 - E_WARNING verrà lanciata e sarà restituito &null;. + Se length è minore di 1, + sarà segnalato un ValueError. + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + Se length è minore di 1, + sarà segnalato un ValueError; + precedentemente, veniva mostrato un errore di tipo E_WARNING + e la funzione restituiva &null;. + + + + + + + &reftitle.examples; @@ -146,7 +173,6 @@ Array - + + @@ -15,7 +16,7 @@ arrayvalues - Crea un array utilizzando i valori dall'array + Crea un array utilizzando keys per le chiavi e i valori dall'array values per i valori corrispondenti. @@ -30,7 +31,7 @@ keys - Un array di chiavi da utilizzare. Valori illegali per le chiavi saranno + Un array di chiavi da utilizzare. I valori non validi come chiavi saranno convertiti in string. @@ -40,7 +41,7 @@ values - Un Array di valori da utilizzare + Un Array di valori da utilizzare come parametro @@ -52,19 +53,43 @@ &reftitle.returnvalues; - Restituisce l'array combinato, &false; se il numero degli elementi - per ogni array non è uguale. + Restituisce l'array generato, o &false; se gli array non hanno la stessa lunghezza. &reftitle.errors; - Genera un E_WARNING se il numero degli elementi di - keys e values non - corrisponde. + A partire da PHP 8.0.0, viene generato un ValueError se il numero di elementi di + keys e values hanno una lunghezza diversa. + Prima di PHP 8.0.0, veniva invece emesso un E_WARNING. + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + array_combine genererà un + ValueError se il numbero degli elementi + degli array non è uguale; + invece prima la funzione ritornava un &false;. + + + + + + &reftitle.examples; @@ -86,7 +111,7 @@ print_r($c); avocado [red] => apple [yellow] => banana @@ -104,6 +129,7 @@ Array array_merge array_walk array_values + array_map diff --git a/reference/array/functions/array-count-values.xml b/reference/array/functions/array-count-values.xml index 2eebf7ab3..1b656853d 100644 --- a/reference/array/functions/array-count-values.xml +++ b/reference/array/functions/array-count-values.xml @@ -1,10 +1,11 @@ - + + array_count_values - Conta tutti i valori di un array + Conta tutte le occorrenze di ogni singolo valore in un array @@ -15,8 +16,8 @@ array_count_values restituisce un array usando - i valori di array come chiavi e - la loro frequenza in array come valori. + i valori dell'array (che devono essere &integer; o &string;) + come chiavi e la frequenza degli elementi nell'array come valori. @@ -41,7 +42,7 @@ &reftitle.returnvalues; - Restituisce un array associativo di valori da array come + Restituisce un array associativo di valori da un'array come chiavi ed il loro conteggio come valore. @@ -63,6 +64,7 @@ ]]> @@ -75,6 +77,8 @@ Array [1] => 2 [ciao] => 2 [mondo] => 1 + [ciao] => 2 + [mondo] => 1 ) ]]> @@ -115,4 +119,4 @@ End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 ---> +--> \ No newline at end of file diff --git a/reference/array/functions/array-diff-assoc.xml b/reference/array/functions/array-diff-assoc.xml index fd7d5dcba..c923b7e5e 100644 --- a/reference/array/functions/array-diff-assoc.xml +++ b/reference/array/functions/array-diff-assoc.xml @@ -1,5 +1,6 @@ - + + @@ -15,7 +16,7 @@ arrayarrays - Confronta array con arrays e + Confronta un'array con arrays e restituisce la differenza. A differenza di array_diff, nel confronto vengono utilizzate anche le chiavi dell'array. @@ -30,16 +31,7 @@ array - L'array da confrontare - - - - - - arrays - - - Gli array con cui confrontare + The array to compare from @@ -51,8 +43,29 @@ &reftitle.returnvalues; + Restituisce un array contenente tutti i valori dell' array che non sono presenti in nessuno degli altri array. + + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &array.changelog.require-only-one; + + + @@ -80,6 +93,8 @@ "verde", "b" => "marrone", "c" => "blu", "rosso"); $array2 = array("a" => "verde", "giallo", "rosso"); +$array1 = array("a" => "verde", "b" => "marrone", "c" => "blu", "rosso"); +$array2 = array("a" => "verde", "giallo", "rosso"); $result = array_diff_assoc($array1, $array2); print_r($result); ?> @@ -93,6 +108,9 @@ Array [b] => marrone [c] => blu [0] => rosso + [b] => marrone + [c] => blu + [0] => rosso ) ]]> @@ -102,9 +120,9 @@ Array Esempio di <function>array_diff_assoc</function> - Due valori delle coppie chiave => valore sono + I due valori delle coppie chiave => valore sono considerati uguali solo se (string) $elem1 === (string) - $elem2 . In altre parole c'è un controllo stringente che si accerta + $elem2 . In altre parole c'è un controllo preciso che si accerta che le rappresentazioni sotto forma di stringa siano uguali. @@ -124,7 +142,7 @@ Array ( [0] => 0 [1] => 1 - ) +) ]]> @@ -135,8 +153,9 @@ Array &reftitle.notes; - Si noti che questa funzione controlla solo una dimensione di un array - n-dimensionale. Ovviamente è possibile controllare le altre dimensioni usando, per esempio, + Questa funzione controlla una sola dimensione di un array n-dimensioni. + E' possile controllare più in profondità l'array usando per esempio + array_diff_assoc($array1[0], $array2[0]);. diff --git a/reference/array/functions/array-filter.xml b/reference/array/functions/array-filter.xml index cc0c996b5..a1cefaf2e 100644 --- a/reference/array/functions/array-filter.xml +++ b/reference/array/functions/array-filter.xml @@ -1,58 +1,162 @@ - - + + + + - - - array_filter - - Filtra gli elementi di un array usando una funzione callback - - - - Descrizione - - arrayarray_filter - arrayinput - callbackcallback - - - array_filter esegue un'iterazione su ogni valore - nell' array input passandolo alla - funzione. Se - funzione restituisce &true;, il valore corrente - di input viene restituito nell'array - risultato. Le chiavi sono mantenute. - - - - Esempio di <function>array_filter</function> - + + + array_filter + Filtra gli elementi di un array tramite una callback + + + + &reftitle.description; + + arrayarray_filter + arrayarray + callablenullcallback&null; + intmode0 + + + Itera ogni valore dell'array + passandoli alla callback. + Se la callback restituisce &true;, il + valore corrente dall'array viene aggiunto nel + risultato &array;. + + + Le chiavi dell'array vengono mantenute ma potrebbero essere delle lacune se l'array + è stato indicizzato. Il risultato &array; può essere reindicizzato utilizzando la funzione + array_values. + + + + + &reftitle.parameters; + + + + + array + + + L'array su cui iterare. + + + + + + callback + + + La funzione callback da usare. + + + Se non viene fornito alcun callback, tutte le voci vuote + dell'array verranno rimosse. Andare a vedere empty + per sapere come PHP definisce empty in questo caso. + + + + + + mode + + + Flag che determina quali argomenti sono inviati alla callback: + + + + ARRAY_FILTER_USE_KEY - passa la chiave come unico argomento alla + callback invece del valore. + + + + ARRAY_FILTER_USE_BOTH - passa sia il valore che la chiave + come argomenti alla callback invece del valore. + + + Il valore di Default è 0 che passerà il valore come unico argomento + alla callback. + + + + + + + + + + &reftitle.returnvalues; + + Restituisce l'array filtrato. + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + La callback può anche non essere usata. + + + &array.changelog.by-ref; + + + + + + + + + &reftitle.examples; + + + <function>array_filter</function> example + 1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); -$array2 = array(6, 7, 8, 9, 10, 11, 12); +$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]; +$array2 = [6, 7, 8, 9, 10, 11, 12]; -echo "Dispari :\n"; -print_r(array_filter($array1, "dispari"); -echo "Pari :\n"; -print_r(array_filter($array2, "pari"); +echo "Odd :\n"; +print_r(array_filter($array1, "odd")); +echo "Even:\n"; +print_r(array_filter($array2, "even")); ?> ]]> - - &example.outputs; - + + &example.outputs; + 12 ) ]]> - - - - - Gli utenti non possono modificare l'array attraverso la funzione - di callback, ad esempio aggiungere/togliere un elemento, o cancellare l'array su cui - array_filter è applicata. Se l'array viene - cambiato, il comportamento di questa funzione non è definito. - - - Se la funzione callback non viene indicata, - array_filter rimuoverà tutti gli elementi di - input che siano uguali a &false;. Vedere conversione a boolean - per ulteriori informazioni. - - - - <function>array_filter</function> senza - <parameter>callback</parameter> - + + + + <function>array_filter</function> senza + <parameter>callback</parameter> + 'pippo', - 1 => false, - 2 => -1, - 3 => null, - 4 => '' - ); +$entry = [ + 0 => 'foo', + 1 => false, + 2 => -1, + 3 => null, + 4 => '', + 5 => '0', + 6 => 0, +]; print_r(array_filter($entry)); ?> ]]> - - &example.outputs; - + + &example.outputs; + pippo + [0] => foo [2] => -1 ) ]]> - - - - - Vedere anche array_map e - array_reduce. - - - + + + + <function>array_filter</function> con + <parameter>mode</parameter> + + 1, 'b' => 2, 'c' => 3, 'd' => 4]; + +var_dump(array_filter($arr, function($k) { + return $k == 'b'; +}, ARRAY_FILTER_USE_KEY)); + +var_dump(array_filter($arr, function($v, $k) { + return $k == 'b' || $v == 4; +}, ARRAY_FILTER_USE_BOTH)); +?> +]]> + + &example.outputs; + + + int(2) +} +array(2) { + ["b"]=> + int(2) + ["d"]=> + int(4) +} +]]> + + + + + + + &reftitle.notes; + + + Se l'array viene modificato dalla callback (Es.: elemento aggiunto o rimosso) + il comportamento di questa funzione non è definito. + + + + + + &reftitle.seealso; + + + array_intersect + array_find + array_any + array_map + array_reduce + + + + + + - array_key_exists + array_key_exists Controlla se l'indice o la chiave specificato esiste nell'array @@ -16,8 +17,8 @@ array_key_exists restituisce &true; se la - key data è impostata nell'array. - key può essere qualsiasi valore possibile + key data è presente nell'array. + key può essere un qualsiasi valore possibile per un indice di array. @@ -30,7 +31,7 @@ key - Il valore da verificare. + Il valore da controllare. @@ -59,6 +60,31 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + The key parametri ora accettati + bool, float, int, + null, resource, e + string come argomenti. + + + + + + + &reftitle.examples; @@ -68,6 +94,9 @@ 1, 'secondo' => 4); +if (array_key_exists('primo', $search_array)) { + echo "L'elemento 'primo' è nell'array"; +$search_array = array('primo' => 1, 'secondo' => 4); if (array_key_exists('primo', $search_array)) { echo "L'elemento 'primo' è nell'array"; } @@ -80,17 +109,22 @@ if (array_key_exists('primo', $search_array)) { <function>array_key_exists</function> vs <function>isset</function> isset non restituisce &true; per le chiavi di array - che corrispondono ad un valore &null;, mentre - array_key_exists lo fa. + che corrispondono ad un valore &null;, è possibile usare + array_key_exists. null, 'secondo' => 4); +$search_array = array('primo' => null, 'secondo' => 4); +// restituisce false +isset($search_array['primo']); // restituisce false isset($search_array['primo']); +// restituisce true +array_key_exists('primo', $search_array); // restituisce true array_key_exists('primo', $search_array); ?> @@ -103,8 +137,8 @@ array_key_exists('primo', $search_array); &reftitle.notes; - Per motivi di retrocompatibilità, anche array_key_exists - restituirà &true; se key è una proprietà + Per motivi di retrocompatibilità, array_key_exists + restituirà &true; se la key è una proprietà definita all'interno di un object dato come array. Questo comportamento è deprecato a partire da PHP 7.4.0 e rimosso a partire da PHP 8.0.0. diff --git a/reference/array/functions/array-map.xml b/reference/array/functions/array-map.xml index 7475c51b7..d6d364904 100644 --- a/reference/array/functions/array-map.xml +++ b/reference/array/functions/array-map.xml @@ -1,29 +1,33 @@ - + + array_map - Applica la funzione callback a tutti gli elementi degli array dati + Applica la callback a tutti gli elementi dell'array in input &reftitle.description; arrayarray_map - callablecallback - arrayarray1 - array... + callablenullcallback + arrayarray + arrayarrays - array_map restituisce un &array; contenente - i risultati dell'applicazione della callback - all'indice corrispondente di array1 - (e ... se vengono forniti più array) - usati come argomenti per la callback. + array_map restituisce un &array; che contiene + i risultati della callback + all'indice corrispondente dell'elemento dell'array + (o arrays se vengono forniti più array) + usato/i come argomento per la callback. Il numero di parametri che la funzione callback accetta dovrebbe corrispondere al numero di array - passati ad array_map. + passati a array_map. + I parametri in eccesso sono ignorati. + Un ArgumentCountError + viene generato se sarà fornito un numero insufficente di argomenti. @@ -35,18 +39,23 @@ callback - Una callable da eseguire per ogni elemento in ogni array. + Una funzione callable da eseguire per ogni elemento in ogni array. &null; può essere passato come valore alla callback - per eseguire un'operazione zip su più array. - Se viene fornito solo array1, - array_map restituirà l'array di input. + per eseguire un'operazione zip su più array e ritornerà un'array + i cui elementi sono ciascuno un sub-array contenente gli elementi degli + array di input con lo stesso indice (vedere l'esempio seguente). + + Se viene fornito un solo array, + array_map restituirà l'array di input. + + - array1 + array Un array su cui eseguire la funzione callback. @@ -54,11 +63,11 @@ - ... + arrays - Lista di variabili supplementari di argomenti di array da eseguire nella - funzione callback. + Array di argomenti supplementari da eseguire nella + callback. @@ -69,9 +78,9 @@ &reftitle.returnvalues; - Restituisce un array contenente i risultati dell'applicazione della funzione + Restituisce un array contenente i risultati dell'applicazione della callback all'indice corrispondente di array1 - (e ... se vengono forniti più array) + (o arrays se vengono forniti più array) usati come argomenti per la callback. @@ -81,6 +90,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &array.changelog.by-ref; + + + + + &reftitle.examples; @@ -123,11 +149,16 @@ Array $value * 2, range(1, 5))); + ?> ]]> @@ -151,12 +182,12 @@ Array $m]; } @@ -176,6 +207,7 @@ print_r($d); Il numero 1 è chiamato uno in spagnolo @@ -183,8 +215,14 @@ Array [2] => Il numero 3 è chiamato tres in spagnolo [3] => Il numero 4 è chiamato cuatro in spagnolo [4] => Il numero 5 è chiamato cinco in spagnolo + [0] => Il numero 1 è chiamato uno in spagnolo + [1] => Il numero 2 è chiamato dos in spagnolo + [2] => Il numero 3 è chiamato tres in spagnolo + [3] => Il numero 4 è chiamato cuatro in spagnolo + [4] => Il numero 5 è chiamato cinco in spagnolo ) +// stampa di $d // stampa di $d Array ( @@ -372,6 +410,44 @@ array(1) { string(5) "value" } } +]]> + + + + <function>array_map</function> - array associativi + + Mentre array_map non supporta direttamente + di arrray associativi come input, questo può essere simulato con array_keys. + + + 'Prima release', + 'v2' => 'Seconda release', + 'v3' => 'Terza release', +]; + +// Note: Prima della 7.4.0,invece si usava una versione estesa per le funzioni anonime. +$callback = fn(string $k, string $v): string => "$k was the $v"; + +$result = array_map($callback, array_keys($arr), array_values($arr)); + +var_dump($result); +?> +]]> + + &example.outputs; + + + string(24) "v1 was the First release" + [1]=> + string(25) "v2 was the Second release" + [2]=> + string(24) "v3 was the Third release" +} ]]> @@ -389,7 +465,6 @@ array(1) { - + + array_merge_recursive - Fonde due o più array in modo ricorsivo + Fonde due o più array ricorsivamente &reftitle.description; arrayarray_merge_recursive - arrayarray1 - array... + arrayarrays - Array_merge_recursive fonde gli elementi di - uno o più array in modo tale che i valori di un array siano accodati - all'array precedente. Restituisce l'array risultante. + array_merge_recursive + fonde gli elementi di uno o più array in modo tale che i valori di un'array siano accodati + alla fine del precedente e restituisce l'array così elaborato. Se gli array in input hanno le stesse chiavi stringa, i valori di - queste chiavi vengono fusi in un array, e questo è fatto in modo + queste chiavi vengono fusi in un array, in modo ricorsivo, cioè se uno dei valori è un array, la funzione lo fonderà con una voce corrispondente in un altro array Comunque, se gli array hanno la stessa chiave numerica, l'ultimo valore @@ -33,15 +33,7 @@ - array1 - - - Array iniziale da fondere. - - - - - ... + arrays Lista variabile di array da fondere ricorsivamente. @@ -56,6 +48,32 @@ &reftitle.returnvalues; Un array di valori risultante dalla fusione degli argomenti. + Se usata senza nessun argomento, ritorna un &array; vuoto. + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 7.4.0 + + Questa funzione può essere chiamata senza parametro, + Formalmente, almeno un parametro è richiesto. + + + + + @@ -70,6 +88,9 @@ $ar1 = array("colore" => array ("preferito" => "rosso"), 5); $ar2 = array(10, "colore" => array ("preferito" => "verde", "blu")); $risultato = array_merge_recursive($ar1, $ar2); +$ar1 = array("colore" => array ("preferito" => "rosso"), 5); +$ar2 = array(10, "colore" => array ("preferito" => "verde", "blu")); +$risultato = array_merge_recursive($ar1, $ar2); print_r($result); ?> ]]> @@ -79,15 +100,20 @@ print_r($result); Array [colore] => Array ( + [preferito] => Array [preferito] => Array ( [0] => rosso [1] => verde + [0] => rosso + [1] => verde ) [0] => blu + [0] => blu ) [0] => 5 @@ -104,6 +130,7 @@ Array array_merge + array_replace_recursive diff --git a/reference/array/functions/array-multisort.xml b/reference/array/functions/array-multisort.xml index bfabd297a..bb7e7cfe1 100644 --- a/reference/array/functions/array-multisort.xml +++ b/reference/array/functions/array-multisort.xml @@ -1,5 +1,7 @@ - + + + array_multisort @@ -12,16 +14,16 @@ arrayarray1 mixedarray1_sort_orderSORT_ASC mixedarray1_sort_flagsSORT_REGULAR - mixed... + mixedrest - Array_multisort Può essere usata per ordinare parecchi - array allo stesso tempo, oppure un array multidimensionale, rispetto a una o + Array_multisort Può essere usato per ordinare parecchi + array alla volta, oppure un array multidimensionale, rispetto a una o più dimensioni. - Mantiene le chiavi associative (tipo string), mentre le chiavi - numeriche vengono reindicizzate. + Le chiavi associative (tipo string) saranno mantenute, mentre le chiavi + numeriche venrranno reindicizzate. @@ -41,13 +43,13 @@ array1_sort_order - L'ordinamento da applicare al precedente argomento array. Può essere - SORT_ASC per un ordinamento crescente o SORT_DESC - per un ordinamento decrescente. + L'ordinamento da applicare al precedente array argomento. Either + SORT_ASC per ordinare in modo ascendente o SORT_DESC + in modo discendente. Questo argomento può essere scambiato con array1_sort_flags - o completamente omesso, nel qual caso si usa per default SORT_ASC. + o può essere omesso completamente, in questo caso SORT_ASC è il valore di default. @@ -58,38 +60,38 @@ Opzioni di ordinamento per il precedente argomento array: - Flag di tipo: + Flag tipo d'ordinamento: - SORT_REGULAR - confronta gli elementi in modo normale - (non cambiare il tipo) - - - SORT_NUMERIC - confronta gli elementi numericamente - - - SORT_STRING - confronta gli elementi come stringhe - - - - SORT_LOCALE_STRING - confronta gli elementi come - stringhe, basandosi sull'attuale impostazione di localizzazione. Usa la localizzazione, - che può essere cambiata con setlocale - - - - - SORT_NATURAL - confronta gli elementi come stringhe - usando l'"ordinamento naturale" come natsort - - - - - SORT_FLAG_CASE - può essere combinato - (OR binario) con - SORT_STRING o - SORT_NATURAL per ordinare le stringhe senza tener conte delle maiuscole/minuscole - + SORT_REGULAR - ordina gli elementi in modo normale + (non cambia tipo) + + + SORT_NUMERIC - ordina gli elementi in modo numerico + + + SORT_STRING - ordina gli elementi in modo stringa + + + + SORT_LOCALE_STRING - ordina gli elementi in modo + stringa, basandosi sulla corrente impostazione locale. Usa l'impostazione locale, + che può essere modificata con setlocale + + + + + SORT_NATURAL - ordina gli elementi come stringhe + usando "ordinamento naturale" come per natsort + + + + + SORT_FLAG_CASE - può essere cominato con + (bitwise OR) + SORT_STRING o + SORT_NATURAL per ordinare in modo case-insensitive + @@ -103,7 +105,9 @@ ... - Altri array, opzionalmente seguiti da opzioni di ordinamento e flag di tipo. + Altri array, opzionalmente seguiti da opzioni di ordinamento e flag di tipo. Solo gli elementi + corrispondenti agli elementi equivalenti negli array precedenti vengono confrontati. + In altre parole, l'ordinamento è lessicografico. @@ -117,7 +121,7 @@ &return.success; - + &reftitle.examples; @@ -158,8 +162,8 @@ + + In this example, after sorting, the first array will contain 0, + 10, 100, 100. The second array will contain 4, 1, 2, 3. The + entries in the second array corresponding to the identical + entries in the first array (100 and 100) were sorted as well. + In questo esempio, dopo l'ordinamento, il primo array conterrà 0, 10, 100, 100. Il secondo array conterrà 4, 1, 2, 3. Gli - elementi del secondo array corrispondenti a quelli, identici, del - primo array (100 e 100), vengono pure ordinati. + elementi del secondo array con le chiavi corrispondenti a quelle, del + primo array (100 e 100), vengono ordinati allo stesso modo. - Esempio di dati: + Example data: I dati sono in un array, chiamato data. Di solito - questo si ottiene ciclando, ad esempio, con mysql_fetch_assoc. + questo si ottiene ciclando, per esempio, usando mysql_fetch_assoc. 67, 'edition' => 7); ]]> - In questo esempio ordineremo volume in senso discendente, - edition in senso ascendente. + In questo esempio ordineremo volume in modo discendente, + mentre edition in modo ascendente. - Abbiamo un array di record, ma array_multisort + Abbiamo un array di righe, mentre array_multisort richiede un array di colonne, quindi usiamo il codice qui sotto per ottenerlo, - quindi eseguiremo l'ordinamento. + e quindi eseguire l'ordinamento. $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } +// puoi usare array_column() invece del codice posto qui sopra +$volume = array_column($data, 'volume'); +$edition = array_column($data, 'edition'); + +// Ordina i dati volume in modo decrescente, edizione in modo crescente +// Aggiungi $data come ultimo parametro, per ordinarlo in base alla chiave comune -// Ordina 'volume' in senso discendente, 'edition' in senso ascendente -// Aggiungere $data come ultimo parametr per ordinare sulla chiave comune array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); ?> ]]> @@ -317,16 +331,16 @@ volume | edition - Ordinamento senza distinzione tra maiuscole e minuscole + Ordinamento Case insensitive Sia SORT_STRING che - SORT_REGULAR tengono conto delle maiuscole, le stringhe - che iniziano con una maiuscola vengono prima di quelle che iniziano con - una minuscola. + SORT_REGULAR cono case sensitive, le stringhe + iniziano con una lettera maiuscola vengono prima di quelle che iniziano con + una minuscola. - Per ottenere un ordinamento che ignori le maiuscole, forzarlo in modo - che sia determnato da una copia dell'array originale formata da sole minuscole. + Per ottenere un ordinamento case insensitive, bisogna forzare l'ordinamento + in modo che sia determnato da una copia dell'array originale formata da sole minuscole. + + + + + array_replace_recursive + Sostituisce gli elementi del primo array passato con gli array successivi in modo ricorsivo. + + + + &reftitle.description; + + arrayarray_replace_recursive + arrayarray + arrayreplacements + + + array_replace_recursive + Sostituisce i valori dell'array con gli stessi + valori da tutti gli array seguenti. Se una chiave del primo array esiste + nel secondo array, il suo valore verrà sostituito dal valore del + secondo array. Se la chiave esiste nel secondo array e non il primo, + la chiave verrà creato nel primo array. Se una chiave esiste + solo nel primo array, verrà lasciata così com'è. Se vengono passati + più array per la sostituzione, verranno elaborati in ordine, + l'array successivo sovrascrive i valori precedenti. + + + array_replace_recursive è ricorsiva : la funzione + scorrerà l'array e verrà applicata anche ai + valori più interni. + + + Quando il valore nel primo array è scalare, verrà sostituito + dal valore del secondo array, può essere sia uno scalare che un'array. + Quando il valore nel primo array e nel secondo array + sono entrambi array, array_replace_recursive sostituirà + il loro rispettivo valore in modo ricorsivo. + + + + &reftitle.parameters; + + + + array + + + L'array nel quale gli elementi sono sostituiti. + + + + + replacement + + + Array da cui verranno estratti gli elementi. + + + + + + + + &reftitle.returnvalues; + + Ritorna un'array. + + + + &reftitle.examples; + + + <function>array_replace_recursive</function> esempi + + array( "orange") , 'berries' => array("blackberry", "raspberry"), ); +$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry')); + +$basket = array_replace_recursive($base, $replacements); +print_r($basket); + +$basket = array_replace($base, $replacements); +print_r($basket); +?> +]]> + + &example.outputs; + + Array + ( + [0] => pineapple + ) + + [berries] => Array + ( + [0] => blueberry + [1] => raspberry + ) + +) +Array +( + [citrus] => Array + ( + [0] => pineapple + ) + + [berries] => Array + ( + [0] => blueberry + ) + +) + +]]> + + + + <function>array_replace_recursive</function>e il comportamento ricorsivo. + + array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' ); +$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis')); +$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis'); + +$basket = array_replace_recursive($base, $replacements, $replacements2); +print_r($basket); + +?> +]]> + + &example.outputs; + + Array + ( + [0] => pineapple + ) + + [berries] => Array + ( + [0] => blueberry + [1] => raspberry + ) + + [others] => litchis +) +]]> + + + + + + &reftitle.seealso; + + + array_replace + array_merge_recursive + + + + + diff --git a/reference/array/functions/extract.xml b/reference/array/functions/extract.xml index 35e405485..630d46b62 100644 --- a/reference/array/functions/extract.xml +++ b/reference/array/functions/extract.xml @@ -1,10 +1,11 @@ - - + + + - extract - Importa le variabili nella tabella dei simboli corrente da un array + extract + Importa le variabili nella symbol table corrente a partire da un array &reftitle.description; @@ -15,7 +16,8 @@ stringprefix"" - Importa le variabili nella tabella dei simboli corrente da un array. + Importa variabili da un array nella + symbol table. Controlla ogni chiave per vedere se ha un nome di variabile valido. @@ -43,7 +45,7 @@ parametri flags e prefix. - È necessario utilizzare un array associativo; un array indicizzato numericamente + È necessario utilizzare un array associativo; un array indicizzato di tipo numerico non produrrà risultati a meno che non si utilizzi EXTR_PREFIX_ALL o EXTR_PREFIX_INVALID. @@ -61,7 +63,7 @@ EXTR_OVERWRITE - In caso di collisione, sovrascrivi la variabile esistente. + In caso di collisione, la variabile esistente viene sovrascritta. @@ -69,7 +71,7 @@ EXTR_SKIP - In caso di collisione, non sovrascrivere la variabile + In caso di collisione, non sovrascrive la variabile esistente. @@ -77,7 +79,7 @@ EXTR_PREFIX_SAME - In caso di collisione, anteporre al nome della variabile il prefisso + In caso di collisione, antepone al nome della variabile il prefisso prefix. @@ -86,7 +88,7 @@ EXTR_PREFIX_ALL - Prefissa tutti i nomi delle variabili con + Antepone a tutti i nomi delle variabili prefix. @@ -96,7 +98,7 @@ Aggiunge il prefisso prefix solo ai nomi di variabili - non valide/numeriche. + non validi/numerici. @@ -116,18 +118,18 @@ EXTR_PREFIX_IF_EXISTS - Crea nomi di variabili con prefisso solo se la versione senza prefisso - della stessa variabile esiste nella tabella dei simboli corrente. + Crea nomi di variabili con prefisso solo se la versione originale + della variabile esiste nella tabella dei simboli corrente. EXTR_REFS - - Estrae le variabili come riferimenti. Ciò significa effettivamente che i - valori delle variabili importate fanno ancora riferimento ai valori del - parametro array. Si può usare questo flag + + Estrae le variabili per riferimento. Ciò significa effettivamente che i + valori delle variabili importate fanno ancora riferimento ai valori + dell'array. Si può usare questo flag da solo o combinarlo con qualsiasi altro flag utilizzando l'OR dei flags. @@ -136,8 +138,8 @@ - Se flags non è specificato, si - presume che sia EXTR_OVERWRITE. + Se flags non è specificato, + il valore di default è EXTR_OVERWRITE. @@ -145,12 +147,12 @@ prefix - Notare che prefix è richiesto solo se - flags è EXTR_PREFIX_SAME, + Notare che prefix è richiesto solo se sono attivi i + flags EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID o EXTR_PREFIX_IF_EXISTS. Se il risultato con prefisso non è un nome di variabile valido, non viene - importato nella tabella dei simboli. I prefissi vengono separati automaticamente dalla + importato nella tabella dei simboli. I prefissi vengono automaticamente separati dalla chiave dell'array da un carattere underscore. @@ -182,11 +184,14 @@ /* Si supponga che $var_array sia un array restituito da wddx_deserialize */ -$size = "grande"; -$array_variabili = array("color" => "blu", - "size" => "media", - "shape" => "sfera"); -extract($array_variabili, EXTR_PREFIX_SAME, "wddx"); +$size = "large"; +$var_array = array( + "color" => "blue", + "size" => "medium", + "shape" => "sphere" +); + +extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; @@ -196,17 +201,17 @@ echo "$color, $size, $shape, $wddx_size\n"; &example.outputs; $size non è stato sovrascritto perché abbiamo specificato EXTR_PREFIX_SAME, che ha portato alla creazione di $wddx_size. Se fosse stato specificato - EXTR_SKIP, allora $wddx_size non sarebbe nemmeno stato creato. + EXTR_SKIP, allora $wddx_size non sarebbe stato creato. EXTR_OVERWRITE avrebbe fatto sì che $size avesse - il valore "medio" e EXTR_PREFIX_ALL avrebbe comportato nuove variabili - con nomi $wddx_color, + il valore "medio" EXTR_PREFIX_ALL e avrebbe comportato + che le nuove variabili verrebbero chiamante $wddx_color, $wddx_size e $wddx_shape. @@ -220,10 +225,10 @@ blu, grande, sfera, media Non utilizzare extract su dati non attendibili, come l'input dell'utente (per esempio $_GET, $_FILES, ecc.). - In tal caso, assicurarsi di utilizzare uno dei valori di flags - che non sovrascrivono come - EXTR_SKIP e tenere presente che si dovrebbe estrarre - nello stesso ordine definito in + Se o fai, assicurati di usare uno dei flags + che non sovrascrivono le variabili come + EXTR_SKIP e fare in modo di estrarre + nello stesso ordine definito di come è stato definito in variables_order all'interno del &php.ini;. diff --git a/reference/array/functions/key.xml b/reference/array/functions/key.xml index 4fdc21bd4..3a9ed441a 100644 --- a/reference/array/functions/key.xml +++ b/reference/array/functions/key.xml @@ -1,5 +1,7 @@ - + + + @@ -9,12 +11,12 @@ &reftitle.description; - mixedkey - arrayarray + intstringnullkey + arrayobjectarray - key restituisce la chiave corrispondente - all'attuale posizione del puntatore interno all'array. + key restituisce la chiave dell'elemento + corrente dell'array; @@ -34,14 +36,32 @@ &reftitle.returnvalues; - - La funzione key restituisce la - chiave dell'elemento dell'array che è attualmente indicato dal + + La funzione key restituisce semplicemente la + chiave dell'elemento che è attualmente indicato dal puntatore interno. Non modifica il puntatore. Se il - puntatore punta oltre la fine della lista degli elementi, oppure se l'array è + puntatore interno punta oltre la fine della lista degli elementi, oppure se l'array è vuoto, key restituisce &null;. + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &standard.changelog.calling-on-objects; + + + + + &reftitle.examples; @@ -57,11 +77,11 @@ $array = array( 'frutto4' => 'mela', 'frutto5' => 'mela'); -// questo ciclo mostra tutte le chiavi -// dell'array associativo che sono uguali a 'mela' -while ($nome_frutto = current($array)( { - if ($nome_frutto == 'mela') { - echo key($array).'
'; +// questo ciclo mostra tute le chiavi associative +//dell'array che sono aguali a "mela" +while ($fruit_name = current($array)) { + if ($fruit_name == 'mela') { + echo key($array), "\n"; } next($array); } @@ -85,11 +105,12 @@ frutto5
current next + array_key_first + foreach
-