Vai al contenuto

Gruppo Array

Abstract

Questo gruppo contiene funzioni espressione per la creazione e la manipolazione di array (noti anche come strutture dati ad elenco). L'ordine dei valori all'interno dell'array è importante, al contrario della struttura dati 'a mappa', in cui l'ordine delle coppie chiave-valore è irrilevante e i valori vengono identificati dalle loro chiavi.


array

Restituisce un array contenente tutti i valori passati come parametro.

Sintassi:

  • array(_value1, value2, …)

Argomenti:

  • value un valore

Esempi:

array(2,10) → array: 2, 10


array_all

Restituisce true se un array contiene tutti i valori di un determinato array.

Sintassi:

  • array_all(array_a, array_b, …_)

Argomenti:

  • array_a un array
  • array_b un array di valori da cercare

Esempi:

array_all(array(1,2,3),array(2,3)) → vero
array_all(array(1,2,3),array(1,2,4)) → falso


array_append

Restituisce un array con il valore passato aggiunto alla fine.

Sintassi:

  • array_append(array, value)

Argomenti:

  • array un array
  • value il valore da aggiungere

Esempi:

array_append(array(1,2,3),4) → array: 1,2,3,4


array_cat

Restituisce un array contenente tutti gli arrays passati concatenati.

Sintassi:

  • array_cat(array1, array2, )

Argomenti:

  • array un array

Esempi:

array_cat(array(1,2),array(2,3)) → array: 1,2,2,3


array_contains

Restituisce true se un array contiene il valore specificato.

Sintassi:

  • array_contains(array, value)

Argomenti:

  • array un array
  • value il valore da cercare

Esempi:

array_contains(array(1,2,3),2) → true


array_count

Conta il numero di occorrenze di un dato valore in un array.

Sintassi:

  • array_count(array,value)

Argomenti:

  • array un array
  • value un valore da contare

Esempi:

array_count(array('a', 'b', 'c', 'b'), 'b') → 2


array_distinct

Restituisce un array contenente valori distinti dell'array dato.

Sintassi:

  • array_distinct(array)

Argomenti:

  • array un array

Esempi:

array_distinct(array(1,2,3,2,1)) → array: 1,2,3


array_filter

Restituisce un array con solo gli elementi per i quali l'espressione restituisce true (vero).

Sintassi:

  • array_filter(array,expression[,limit=0])

Argomenti:

  • array un array
  • expression un'espressione da valutare su ogni oggetto. La variabile @ element sarà sostituita dal valore corrente.
  • limit numero massimo di elementi da restituire. Usa 0 per restituire tutti i valori.

Esempi:

array_filter(array(1,2,3),@element < 3) → [ 1, 2 ]


array_find

Restituisce l'indice (0 per il primo elemento) di un valore all'interno di un array. Restiuisce -1 se il valore non viene trovato

Sintassi:

  • array_find(array, value)

Argomenti:

  • array un array
  • value il valore da cercare

Esempi:

array_find(array(1,2,3),2) → 1


array_first

Restituisce il primo valore di un array.

Sintassi:

  • array_first(array)

Argomenti:

  • array un array

Esempi:

array_first(array('a','b','c')) → 'a'


array_foreach

Aggiornata a QGIS 3.34 Prizren

Restituisce una matrice con l'espressione data valutata su ciascun elemento.

Sintassi:

  • array_foreach(array,expression)

Argomenti:

  • array un array
  • expression un'espressione da valutare su ciascun elemento. La variabile @element verrà sostituita dal valore corrente e la variabile @counter dall'indice corrente (iniziando con 0).

Esempi:

array_foreach(array('a','b','c'),upper(@element)) → [ 'A', 'B', 'C' ]
array_foreach(array(1,2,3),@element + 10) → [ 11, 12, 13 ]
array_foreach(array(1,2,3),@elemento + @counter) → [ 1, 3, 5 ]

Osservazioni

Funzione utile, assieme ad altre, nel compositore di stampe o nella decorazione copyright.

Tweet


array_get

Restituisce l'ennesimo valore (0 per il primo) o l'ultimo -Nesimo valore (-1 per l'ultimo) di un array. Aggiornato a QGIS 3.18

Sintassi:

  • array_get(array, index)

Argomenti:

  • array un array
  • index l'indice da estrarre (partendo da 0)

Esempi:

array_get(array('a','b','c'),-1) → 'c'


array_insert

Restituisce un array con il valore passato aggiunto nella posizione indicata.

Sintassi:

  • array_insert(array, pos, value)

Argomenti:

  • array un array
  • pos la posizione in cui aggiungere (partendo da 0)
  • value il valore da aggiungere

Esempi:

array_insert(array(1,2,3),1,100) → [ 1, 100, 2, 3 ]


array_intersect

Restituisce true (vero) se almeno un elemento dell'array1 esiste in array2.

Sintassi:

  • array_intersect(array1, array2)

Argomenti:

  • array1 un array
  • array2 un altro array

Esempi:

array_intersect(array(1,2,3,4),array(4,0,2,5)) → true


array_last

Restituisce l'ultimo valore di un array.

Sintassi:

  • array_last(array)

Argomenti:

  • array un array

Esempi:

array_last(array('a','b','c')) → 'c'


array_length

Restituisce il numero di elementi di un array.

Sintassi:

  • array_length(array)

Argomenti:

  • array un array

Esempi:

array_length(array(1,2,3)) → 3


array_majority

Restituisce i valori più comuni in un array.

Sintassi:

  • array_majority(array[,option='all'])

Argomenti:

  • array un array
  • option='all' una stringa che specifica la gestione dei valori restituiti. Le opzioni valide sono:

  • all: Predefinito, tutti i valori più comuni vengono restituiti in un array.

  • any: Restituisce uno dei valori più comuni.
  • median: Restituisce la mediana dei valori più comuni. I valori non aritmetici sono ignorati.
  • real_majority: Restituisce il valore che si verifica più della metà delle volte rispetto alla dimensione dell'array.

Esempi:

array_majority(array(0,1,42,42,43), 'all') → [ 42 ]
array_majority(array(0,1,42,42,43,1), 'all') → [ 42, 1 ]
array_majority(array(0,1,42,42,43,1), 'any') → 1 or 42
array_majority(array(0,1,1,2,2), 'median') → 1.5
array_majority(array(0,1,42,42,43), 'real_majority') → NULL
array_majority(array(0,1,42,42,43,42), 'real_majority') → NULL
array_majority(array(0,1,42,42,43,42,42), 'real_majority') → 42


array_max

Restituisce il valore massimo di un array.

Sintassi:

  • array_max(array)

Argomenti:

  • array un array o stringa (valori separati da virgola)

Esempi:

array_max(array(0,42,4,2)) → 42


array_mean

Restituisce la media dei valori aritmetici in un array. I valori non-numerici nell'array vengono ignorati.

Sintassi:

  • array_mean(array)

Argomenti:

  • array un array

Esempi:

array_mean(array(0,1,7,66.6,135.4)) → 42.000000
array_mean(array(0,84,'a','b','c')) → 42


array_median

Restituisce la mediana dei valori aritmetici in un array. I valori non-numerici nell'array vengono ignorati.

Sintassi:

  • array_median(array)

Argomenti:

  • array un array

Esempi:

array_median(array(0,1,42,42,43)) → 42
array_median(array(0,1,2,42,'a','b')) → 1.5`


array_min

Restituisce il valore minimo di un array.

Sintassi:

  • array_min(array)

Argomenti:

  • array_ un array o stringa (valori separati da virgola)

Esempi:

array_min(array(43,42,54)) → 42


array_minority

Restituisce i valori meno comuni in un array.

Sintassi:

  • array_minority(array[,option='all'])

Argomenti:

  • array un array
  • option='all' una stringa che specifica la gestione dei valori restituiti. Le opzioni valide sono:

  • all: Predefinito, tutti i valori meno comuni vengono restituiti in un array.

  • any: Restituisce uno dei valori meno comuni.
  • median: Restituisce la mediana dei valori meno comuni. I valori non aritmetici sono ignorati.
  • real_minority: Restituisce valori che si verificano meno della metà delle volte rispetto alla dimensione dell'array.

Esempi:

array_minority(array(0,42,42), 'all') → [ 0 ]
array_minority(array(0,1,42,42), 'all') → [ 0, 1 ]
array_minority(array(0,1,42,42,43,1), 'any') → 0 or 43
array_minority(array(1,2,3,3), 'median') → 1.5
array_minority(array(0,1,42,42,43), 'real_minority') → [ 42, 43, 0, 1 ]
array_minority(array(0,1,42,42,43,42), 'real_minority') → [ 42, 43, 0, 1 ]
array_minority(array(0,1,42,42,43,42,42), 'real_minority') → [ 43, 0, 1 ]


array_prepend

Restituisce un array con il valore dato aggiunto all'inizio.

Sintassi:

  • array_prepend(array, value)

Argomenti:

  • array un array
  • value il valore da aggiungere

Esempi:

array_prepend(array(1,2,3),0) → [ 0, 1, 2, 3 ]


array_prioritize

Restituisce un array ordinato usando l'ordine specificato in un altro array. I valori che sono presenti nel primo array ma assenti nel secondo array saranno aggiunti alla fine del risultato.

Sintassi:

  • array_prioritize(array,array_prioritize)

Argomenti:

  • array un array o stringa (valori separati da virgola)
  • array_prioritize array o stringa (valori separati da virgola) contenenti i valori ordinati

Esempi:

array_prioritize(array(1, 8, 2, 5), array(5, 4, 2, 1, 3, 8)) → [ 5, 2, 1, 8 ]
array_prioritize(array(5, 4, 2, 1, 3, 8), array(1, 8, 6, 5)) → [ 1, 8, 5, 4, 2, 3 ]


array_remove_all

Restituisce un array con tutti gli elementi del valore passato rimossi.

Sintassi:

  • array_remove_all(array, value)

Argomenti:

  • array un array
  • value i valori da rimuovere

Esempi:

array_remove_all(array('a','b','c','b'),'b') → [ 'a', 'c' ]


array_remove_at

Restituisce un array con l'elemento in corrispondenza dell'indice dato rimosso. Supporta indice positivo (0 per il primo elemento) e negativo (l'ultimo -Nesimo valore, -1 per l'ultimo elemento) da >= QGIS 3.24.

Sintassi:

  • array_remove_at(array, pos)

Argomenti:

  • array un array
  • pos la posizione da rimuovere (partendo da 0)

Esempi:

array_remove_at(array(1,2,3),1) → [ 1, 3 ]


array_replace

Restituisce un array con il valore, l'array o la mappa dei valori forniti sostituiti.

Valore & variante dell'array

Restituisce un array con il valore o con un array di valori forniti sostituito da un altro valore o da un altro array di valori.

Sintassi:

  • array_replace(array,before,after)

Argomenti:

  • array l'array in ingresso
  • before il valore o l'array di valori da sostituire
  • after il valore o l'array di valori da utilizzare come sostituzione

Esempi:

array_replace(array('QGIS','SHOULD','ROCK'),'SHOULD','DOES') → [ 'QGIS', 'DOES', 'ROCK' ]
array_replace(array(3,2,1),array(1,2,3),array(7,8,9)) → [ 9, 8, 7 ]
array_replace(array('Q','G','I','S'),array('Q','S'),'-') → [ '-', 'G', 'I', '-' ]

Variabile mappa

Restituisce un array con le chiavi della mappa fornite sostituite dai loro valori abbinati.

Sintassi:

  • array_replace(array,map)

Argomenti:

  • array l'array in ingresso
  • map la mappa che contiene le chiavi e i valori

Esempi:

array_replace(array('APP', 'SHOULD', 'ROCK'),map('APP','QGIS','SHOULD','DOES')) → [ 'QGIS', 'DOES', 'ROCK' ]


array_reverse

Restituisce l'array dato con valori dell'array in ordine inverso.

Sintassi:

  • array_reverse(array)

Argomenti:

  • array un array

Esempi:

array_reverse(array(2,4,0,10)) → [ 10, 0, 4, 2 ]


array_slice

Restituisce una porzione dell'array. Il taglio è definito dagli argomenti start_pos e end_pos.

Sintassi:

  • array_slice(array, start_pos, end_pos)

Argomenti:

  • array un array
  • start_pos l'indice della posizione iniziale della fetta (a partire da 0). L'indice start_pos è incluso nella fetta. Se si utilizza un valore negativo di start_pos, l'indice è contato dalla fine della lista (a partire da -1).
  • end_pos l'indice della posizione finale della fetta (a partire da 0). L'indice end_pos è incluso nella fetta. Se si utilizza un valore negativo di start_pos, l'indice è contato dalla fine della lista (a partire da -1).

Esempi:

array_slice(array(1,2,3,4,5),0,3) → [ 1, 2, 3, 4 ]
array_slice(array(1,2,3,4,5),0,-1) → [ 1, 2, 3, 4, 5 ]
array_slice(array(1,2,3,4,5),-5,-1) → [ 1, 2, 3, 4, 5 ]
array_slice(array(1,2,3,4,5),0,0) → [ 1 ]
array_slice(array(1,2,3,4,5),-2,-1) → [ 4, 5 ]
array_slice(array(1,2,3,4,5),-1,-1) → [ 5 ]
array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),1,2) → [ 'Valmiera', 'Chugiak' ]
array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),-2,-1) → [ 'Chugiak', 'Brighton' ]


array_sort

Ordina i valori in ordine crescente (usa array_reverse per desc).

Sintassi:

  • array_sort(array[,ascending=true])

Argomenti:

  • array un array o stringa (valori separati da virgola)
  • ascending imposta questo parametro a false per ordinare l'array in modo decrescente

Esempi:

array_sort(array(3,2,1)) → [ 1, 2, 3 ]


array_sum

Restituisce la somma dei valori aritmetici in un array. I valori non-numerici nell'array vengono ignorati.

Sintassi:

  • array_sum(array)

Argomenti:

  • array un array

Esempi:

array_sum(array(0,1,39.4,1.6,'a')) → 42.0


array_to_string

Concatena gli elementi di un array in una stringa separata da un delimitatore usando una stringa opzionale per valori mancanti.

Sintassi:

  • array_to_string(array[,delimiter][,empty_value])

[ ] indica componenti opzionali

Argomenti:

  • array l'array in ingresso
  • delimiter il delimitatore stringa usato per separare gli elementi array concatenati
  • empty_value la stringa opzionale da usare come sostituzione per le corrispondenze (lunghezza nulla) mancanti

Esempi:

array_to_string(array('1','2','3')) → '1,2,3'
array_to_string(array(1,2,3),'-') → '1-2-3'
array_to_string(array('1','','3'),',','0') → '1,0,3'


generate_series

La funzione crea una matrice contenente una sequenza di numeri, segue le stesse regole della funzione generate_series () di PostgreSQL.

Sintassi:

  • generate_series(start,stop[,step=1])

[ ] contrassegna componenti opzionali

Argomenti:

  • start primo valore della sequenza
  • stop valore che termina la sequenza una volta raggiunta
  • step passo usato come incremento tra i valori

Esempi:

generate_series(1,5) → [ 1, 2, 3, 4, 5 ]
generate_series(5,1,-1) → [ 5, 4, 3, 2, 1 ]


geometries_to_array

Divide una geometria in geometrie più semplici in un array.

Sintassi:

  • geometries_to_array(geometry)

Argomenti:

  • geometry la geometria in ingresso

Esempi:

- geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))')) → un array di geometrie di poligoni e linee
- geom_to_wkt(geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))'))[0]) → 'Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))'
- geometries_to_array(geom_from_wkt('MULTIPOLYGON(((5 5,0 0,0 10,5 5)),((5 5,10 10,10 0,5 5))')) → un array di due geometrie poligonali


regexp_matches

Restituisce un array di tutte le stringhe catturate dai gruppo, nell'ordine che i gruppi stessi compaiono con l'espressione regolare fornita con una stringa.

Sintassi:

  • regexp_matches(string, regex[,empty_value=''])

[ ] indica componenti opzionali

Argomenti:

  • string la stringa con cui catturare i gruppi da un'espressione regolare
  • regex l'espressione regolare usata per catturare gruppi
  • empty_value la stringa opzionale da usare come sostituzione per le corrispondenze (lunghezza nulla) mancanti

Esempi:

regexp_matches('QGIS=>rocks','(.*)=>(.*)') → [ 'QGIS', 'rocks' ]
regexp_matches('key=>','(.*)=>(.*)','empty value') → [ 'key', 'empty value' ]


string_to_array

Divide la stringa in un array usando il delimitatore fornito e la stringa opzionale per valori mancanti.

Sintassi:

  • string_to_array(string[,delimiter][,empty_value=''])

[ ] indica componenti opzionali

Argomenti:

  • string la stringa in ingresso
  • delimiter il delimitatore stringa usato per dividere la stringa in ingresso
  • empty_value la stringa opzionale da usare come sostituzione per le corrispondenze (lunghezza nulla) mancanti

Esempi:

string_to_array('1,2,3',',') → [ '1', '2', '3' ]
string_to_array('1,,3',',','0') → [ '1', '0', '3' ]