Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #20196 > unrolled thread
| Started by | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| First post | 2016-01-11 12:07 +0100 |
| Last post | 2016-01-18 10:51 +0100 |
| Articles | 10 — 4 participants |
Back to article view | Back to it.comp.www.php
aggiungere solo i nuovi elementi ad un array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-01-11 12:07 +0100
Re: aggiungere solo i nuovi elementi ad un array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-01-11 12:44 +0100
Re: aggiungere solo i nuovi elementi ad un array "ciccio" <21669invalid@mynewsgate.net> - 2016-01-11 15:42 +0000
Re: aggiungere solo i nuovi elementi ad un array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-01-11 17:25 +0100
Re: aggiungere solo i nuovi elementi ad un array bramante <bramante@yopmail.com> - 2016-01-11 23:39 +0100
Re: aggiungere solo i nuovi elementi ad un array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-01-12 09:02 +0100
Re: aggiungere solo i nuovi elementi ad un array Leonardo Serni <lserni@gmail.com> - 2016-01-14 14:13 +0100
Re: aggiungere solo i nuovi elementi ad un array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-01-17 10:43 +0100
Re: aggiungere solo i nuovi elementi ad un array Leonardo Serni <lserni@gmail.com> - 2016-01-17 18:38 +0100
Re: aggiungere solo i nuovi elementi ad un array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-01-18 10:51 +0100
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-01-11 12:07 +0100 |
| Subject | aggiungere solo i nuovi elementi ad un array |
| Message-ID | <n702eb$mud$1@gioia.aioe.org> |
/**
* Aggiunge al primo array, i nuovi elementi estratti dal secondo array,
* In altre parole, aggiunge al primo array, gli elementi contenuti nel
secondo array,
* che non sono già presenti nel primo array.
*
* @param array $arr1 Il primo array.
* @param array $arr2 Il secondo array da cui estrarre i nuovi elementi.
* @return array
*/
function addOnlyNewElements($arr1, $arr2)
{
$arr = $arr1;
/*
* Estrazione dei nuovi elementi dal secondo array
*/
$newElements = array_diff_key($arr2, $arr1);
foreach ($newElements as $key => $value) {
$arr[$key] = $value;
}
return $arr;
}
Ma non è che esiste una funzione php nativa (già pronta) per fare quanto
illustrato?
[toc] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-01-11 12:44 +0100 |
| Message-ID | <n704j1$veb$1@gioia.aioe.org> |
| In reply to | #20196 |
Il 11/01/2016 12:07, alex ha scritto:
> /**
> * Aggiunge al primo array, i nuovi elementi estratti dal secondo array,
> * In altre parole, aggiunge al primo array, gli elementi contenuti nel
> secondo array,
> * che non sono già presenti nel primo array.
> *
> * @param array $arr1 Il primo array.
> * @param array $arr2 Il secondo array da cui estrarre i nuovi elementi.
> * @return array
> */
> function addOnlyNewElements($arr1, $arr2)
> {
> $arr = $arr1;
>
> /*
> * Estrazione dei nuovi elementi dal secondo array
> */
> $newElements = array_diff_key($arr2, $arr1);
>
> foreach ($newElements as $key => $value) {
> $arr[$key] = $value;
> }
>
> return $arr;
> }
>
> Ma non è che esiste una funzione php nativa (già pronta) per fare quanto
> illustrato?
forse basta solo
return $arr1 + $arr2;
possibile che sia così semplice, o mi sfugge qualcosa?
o_O
[toc] | [prev] | [next] | [standalone]
| From | "ciccio" <21669invalid@mynewsgate.net> |
|---|---|
| Date | 2016-01-11 15:42 +0000 |
| Message-ID | <2016011115423321669@mynewsgate.net> |
| In reply to | #20197 |
alex <1j9448a02@lnx159sneakemail.com.invalid> ha scritto: CUT > > Ma non è che esiste una funzione php nativa (già pronta) per fare quanto > > illustrato? > > forse basta solo > > return $arr1 + $arr2; > > possibile che sia così semplice, o mi sfugge qualcosa? > o_O Si può fare anche tramite funzioni native: array_unique(array_merge($a, $b));
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-01-11 17:25 +0100 |
| Message-ID | <n70l2g$qai$1@gioia.aioe.org> |
| In reply to | #20198 |
Il 11/01/2016 16:42, ciccio ha scritto:
> alex <1j9448a02@lnx159sneakemail.com.invalid> ha scritto:
>
> CUT
>>> Ma non è che esiste una funzione php nativa (già pronta) per fare quanto
>>> illustrato?
>>
>> forse basta solo
>>
>> return $arr1 + $arr2;
>>
>> possibile che sia così semplice, o mi sfugge qualcosa?
>> o_O
>
> Si può fare anche tramite funzioni native:
>
> array_unique(array_merge($a, $b));
>
>
print_r(array_unique(array_merge(
array(0),
array(1,2)
)));
l'elemento *[1] => 1* non ci dovrebbe essere però
Array
(
[0] => 0
[1] => 1
[2] => 2
)
cioè si dovrebbe avere
Array
(
[0] => 0
[1] => 2
)
[toc] | [prev] | [next] | [standalone]
| From | bramante <bramante@yopmail.com> |
|---|---|
| Date | 2016-01-11 23:39 +0100 |
| Message-ID | <n71b0h$npj$1@gioia.aioe.org> |
| In reply to | #20199 |
Il 11/01/2016 17:25, alex ha scritto:
> Il 11/01/2016 16:42, ciccio ha scritto:
>> alex <1j9448a02@lnx159sneakemail.com.invalid> ha scritto:
>>
>> CUT
>>>> Ma non è che esiste una funzione php nativa (già pronta) per fare
>>>> quanto
>>>> illustrato?
>>>
>>> forse basta solo
>>>
>>> return $arr1 + $arr2;
>>>
>>> possibile che sia così semplice, o mi sfugge qualcosa?
>>> o_O
>>
>> Si può fare anche tramite funzioni native:
>>
>> array_unique(array_merge($a, $b));
>>
>>
>
> print_r(array_unique(array_merge(
> array(0),
> array(1,2)
> )));
>
> l'elemento *[1] => 1* non ci dovrebbe essere però
>
> Array
> (
> [0] => 0
> [1] => 1
> [2] => 2
> )
>
> cioè si dovrebbe avere
>
> Array
> (
> [0] => 0
> [1] => 2
> )
>
prova
print_r(array_unique(array_merge(
array('0'=>'0'),
array('1'=>'2')
)));
Ciao
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-01-12 09:02 +0100 |
| Message-ID | <n72bto$1vf$1@gioia.aioe.org> |
| In reply to | #20200 |
Il 11/01/2016 23:39, bramante ha scritto:
>
> print_r(array_unique(array_merge(
> array('0'=>'0'),
> array('1'=>'2')
> )));
a parte che il cable-into-code è ormai spesso una tecnica sconsigliata,
suppongo quindi che tu sappia che esistono anche le variabili (concetto
di flessibilità)
print_r(array_unique(array_merge(
$arr1,
$arr2
)));
ad ogni modo il post iniziale lo avete studiato?
[toc] | [prev] | [next] | [standalone]
| From | Leonardo Serni <lserni@gmail.com> |
|---|---|
| Date | 2016-01-14 14:13 +0100 |
| Message-ID | <mu6f9bp80avfq05sinke5o91q8s8vt08ho@L.Serni> |
| In reply to | #20201 |
On Tue, 12 Jan 2016 09:02:00 +0100, alex <1j9448a02@lnx159sneakemail.com.invalid> wrote:
>a parte che il cable-into-code è ormai spesso una tecnica sconsigliata,
>suppongo quindi che tu sappia che esistono anche le variabili (concetto
>di flessibilità)
Sai una cosa: quando leggo toni come questo, ho sempre l'impressione di
trovarmi davanti a qualcuno che ne sa molto, ma molto più di me.
Sicché calcolo che sia molto probabile che il problema descritto sia al
di là della mia comprensione. E quando pure non lo fosse, sarebbe molto
difficile per me contribuire con qualcosa di utile e farei solo perdere
tempo all'interlocutore, e a tutti i lettori.
Così in questi casi, per risparmiarmi tempo e umiliazioni, tiro dritto.
>print_r(array_unique(array_merge(
> $arr1,
> $arr2
> )));
> ad ogni modo il post iniziale lo avete studiato?
Dipende... non al livello di poterci sostenere un esame.
Ma hai chiesto: "In altre parole, aggiunge al primo array, gli elementi
contenuti nel secondo array, che non sono già presenti nel primo array"
$arr1 = [ 1 => "array 1", 2 => "array 1" ];
$arr2 = [ 1 => "array 2", 3 => "array 2" ];
Quindi in questo caso 1 e 2 devono rimanere "array 1", e ci deve essere
aggiunto solo l'elemento 3.
Mi sembra che ti potrebbe bastare array_replace:
$arr = array_replace($arr2, $arr1);
print_r(array_replace($arr2, $arr1));
Array
(
[1] => array 1
[3] => array 2
[2] => array 1
)
Se li vuoi in ordine (prima tutti gli elementi di $arr1, ecc.):
array_replace($arr1, $arr2, $arr1);
Leonardo
--
Now suppose -just suppose- I could show you a way to
manufacture a wall that would do the same job... but
was only one inch thick.
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-01-17 10:43 +0100 |
| Message-ID | <n7fnn7$11s8$1@gioia.aioe.org> |
| In reply to | #20206 |
Il 14/01/2016 14:13, Leonardo Serni ha scritto: >> >ad ogni modo il post iniziale lo avete studiato? > Dipende... non al livello di poterci sostenere un esame. > Bisogna studiare solo per dare esami? Forse un po' riduttivo, direi... > Ma hai chiesto: "In altre parole, aggiunge al primo array, gli elementi > contenuti nel secondo array, che non sono già presenti nel primo array" > > $arr1 = [ 1 => "array 1", 2 => "array 1" ]; > $arr2 = [ 1 => "array 2", 3 => "array 2" ]; > > Quindi in questo caso 1 e 2 devono rimanere "array 1", e ci deve essere > aggiunto solo l'elemento 3. > Esatto > Mi sembra che ti potrebbe bastare array_replace: > > $arr = array_replace($arr2, $arr1); > > print_r(array_replace($arr2, $arr1)); > > Array > ( > [1] => array 1 > [3] => array 2 > [2] => array 1 > ) > OK
[toc] | [prev] | [next] | [standalone]
| From | Leonardo Serni <lserni@gmail.com> |
|---|---|
| Date | 2016-01-17 18:38 +0100 |
| Message-ID | <prjn9bta92faajfrku6gj3tt8nl0f3as2a@L.Serni> |
| In reply to | #20219 |
On Sun, 17 Jan 2016 10:43:00 +0100, alex <1j9448a02@lnx159sneakemail.com.invalid> wrote: >Il 14/01/2016 14:13, Leonardo Serni ha scritto: >>> >ad ogni modo il post iniziale lo avete studiato? >> Dipende... non al livello di poterci sostenere un esame. >Bisogna studiare solo per dare esami? Non avevo detto questo. Comunque, dato che me lo chiedi: sì. Se alla fine non c'è un esame (anche solo auto-erogato: il risponderti "Sì" con la sicurezza di dire il vero, anziché tanto per fare), studiare non è un «bisogno». > Forse un po' riduttivo, direi... Dipende da come uno definisce "esame" :-) Leonardo -- Now suppose -just suppose- I could show you a way to manufacture a wall that would do the same job... but was only one inch thick.
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-01-18 10:51 +0100 |
| Message-ID | <n7icif$16eg$1@gioia.aioe.org> |
| In reply to | #20222 |
Il 17/01/2016 18:38, Leonardo Serni ha scritto: > On Sun, 17 Jan 2016 10:43:00 +0100, alex <1j9448a02@lnx159sneakemail.com.invalid> wrote: > >> Il 14/01/2016 14:13, Leonardo Serni ha scritto: >>>>> ad ogni modo il post iniziale lo avete studiato? >>> Dipende... non al livello di poterci sostenere un esame. > >> Bisogna studiare solo per dare esami? > > Non avevo detto questo. Comunque, dato che me lo chiedi: sì. > ah però.... > Se alla fine non c'è un esame (anche solo auto-erogato: il risponderti "Sì" con la > sicurezza di dire il vero, anziché tanto per fare), studiare non è un «bisogno». > mmmhhh... anni passati a studiare economia aziendale/politica... forse non ci ho capito niente sui bisogni primari, secondari, terziari: cultura, studio, ricerca... >> Forse un po' riduttivo, direi... > > Dipende da come uno definisce "esame" :-) può essere inteso come analisi, valutazione, studio, *esame* di un problema (non per forza scolastico) al fine di trovare una soluzione. La prossima volta che dovrò risolvere un problema, mi metto a ballare con la bottiglia di vodka in mano, invece di studiare, che dici?
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.www.php
csiph-web