[PHP] Estrarre elementi array su più variabili

samurai.sette

Utente Attivo
17 Dic 2015
226
6
18
Ciao a tutti.
Come da titolo mi chiedevo se è possibile estrarre da un array tutti gli elementi ed inserirli ognuno su una sua variabile.
Faccio un esempio.
Ipotizziamo di avere un array con 4 valori.
Secondo voi è possibile estrarre ognuno dei 4 valori dell'array su 4 variabili differenti?
Mi rendo conto che è una domanda un pò strana ma se qualcuno sa come fare mi piacerebbe saperlo.
Ciao, grazie mille.
 

macus_adi

Utente Attivo
5 Dic 2017
1.209
77
48
IT/SW
Ipotizzando di avere l'array associativo si:
PHP:
$array=['pippo'=>'pluto','paperino'=>'peppag pig'];
extract ( $array);
echo $pippo.' - '.$paperino;
 

marino51

Utente Attivo
28 Feb 2013
2.872
154
63
Lombardia
su 4 variabili differenti?
4 variabili inventate al momento o 4 variabili che prendono il nome dalla KEY ?

se vale la 2a ipotesi, si, si può avendo l'accortezza di gestire le key numeriche

ti riporto l'esempio e la pagina dove trovi maggiori info
PHP:
/*
 https://www.w3schools.com/php/func_array_extract.asp
 */

$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse", "d" => "SnowLeopard");
extract($my_array, EXTR_OVERWRITE);
echo $a." - ".$b." - ".$c." - ".$d."<br />";

$my_array = array(0 => "Cat", 1 => "Dog", 2 => "Horse", 3 => "SnowLeopard");
extract($my_array, EXTR_OVERWRITE + EXTR_PREFIX_ALL, "num");
echo $num_0." - ".$num_1." - ".$num_2." - ".$num_3."<br />";
upload_2019-5-14_21-46-19.png
 
Ultima modifica:

samurai.sette

Utente Attivo
17 Dic 2015
226
6
18
Ciao a tutti, scusate se non ho risposto subito.
Ipotizziamo di avere un array così strutturato:
Codice:
Array
(
    [0] => Array
        (
            [id] => 100
            [data] => 2018-01-01
            [ora] => 08:40:40
            [ch1] => 16577
            [ch2] => 16832
            [ch3] => 15919
        )

    [1] => Array
        (
            [id] => 101
            [data] => 2018-01-02
            [ora] => 09:01:08
            [ch1] => 16577
            [ch2] => 16832
            [ch3] => 15919
        )

    [2] => Array
        (
            [id] => 102
            [data] => 2018-01-03
            [ora] => 09:21:35
            [ch1] => 16577
            [ch2] => 16832
            [ch3] => 15919
        )

    [3] => Array
        (
            [id] => 103
            [data] => 2018-01-04
            [ora] => 09:42:03
            [ch1] => 16576
            [ch2] => 16832
            [ch3] => 15919
        )
)
Da questo array vorrei creare 6 variabili ($id,$data,$ora,$ch1,$ch2,$ch3) così strutturate:
$id = "100,101,102,103";
$data = "2018-01-01,2018-01-02,2018-01-03,2018-01-04";
ecc.
Tengo a precisare che la struttura dell'array non è "fissa", nel senso che essa varia a seconda di come è strutturata la tabella da cui estraggo gli elementi.
 

macus_adi

Utente Attivo
5 Dic 2017
1.209
77
48
IT/SW
PHP:
$data='IL TUO ARRAY NON DIMENTICARLO';
$m_data=[];
$intestazioni=array_keys($data[0]);
foreach ($data as $k=>$v){
   foreach ($intestazioni as $items)(!isset($m_data[$items]))?$m_data[$items]=$v[$items]:$m_data[$items].=','.$v[$items];
}
extract($m_data);
In alternativa:
PHP:
function array__($data){
   $intestazioni=array_keys($data[0]);
   $m_data=[];
   foreach ($data as $k=>$v){
      foreach ($intestazioni as $items)(!isset($m_data[$items]))?$m_data[$items]=$v[$items]:$m_data[$items].=','.$v[$items];
   }
   return $m_data;
}
$current_data=array__($data));
extract($current_data);


/*************************** ALTRA VERSIONE*/
function joined($data){
   $intestazioni=array_keys($data[0]);
   $m_data=[];
   foreach ($data as $k=>$v){
      foreach ($intestazioni as $items){
         (!isset($m_data[$items]))?$m_data[$items]=[]:null;
         $m_data[$items][]=$v[$items];
      }
   }
   foreach ($intestazioni as $items){
      $m_data[$items]=join(',',$m_data[$items]);
   }
   return $m_data;
}
extract(joined($data));
 
Ultima modifica:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.182
312
83
@samurai.sette
Come ti ho già chiesto ancora per regolamento:
  1. quamdo posti codice generico devi usare il tag
    code.gif
  2. Quando posti codice PHP devi usare il rag
    php.png
Grazie