[PHP] Conteggiare arraymultidimensionali

Discussione in 'PHP' iniziata da samurai.sette, 12 Settembre 2019.

  1. samurai.sette

    samurai.sette Utente Attivo

    Registrato:
    17 Dicembre 2015
    Messaggi:
    192
    Mi Piace Ricevuti:
    5
    Punteggio:
    18
    Ciao a tutti. Apro questa discussione per chiedervi un aiuto in merito agli array multidimensionali.
    Ho questo array multidimensionale:
    PHP:
    Array
    (
        [
    0] => Array
            (
                [
    0] => 2018-12-31
                
    [1] => 05:57:00
                
    [2] => -0.001
                
    [3] => -0.005
                
    [4] => -0.002
            
    [5] => -0.008
            
    [6] => -0.019
            
    )

        [
    1] => Array
            (
                [
    0] => 2018-12-31
                
    [1] => 06:17:27
                
    [2] => -0.001
                
    [3] => -0.005
            
    )

        [
    2] => Array
            (
                [
    0] => 2018-12-31
                
    [1] => 06:37:55
                
    [2] => -0.001
                
    [3] => -0.005
                
    [4] => -0.004
            
    )

        [
    3] => Array
            (
                [
    0] => 2018-12-31
                
    [1] => 06:58:22
                
    [2] => -0.001
            
    )
    )
    Come potete vedere ogni chiave ha un numero diverso di elementi. So che per individuare il numero degli elementi c'è il comando "count". Ma come faccio a determinare il numero di elementi presenti in ogni singola chiave? (chiave 0 --> 7 elementi; chiave 1 --> 4 elementi; chiave 2 --> 5 elementi; chiave 3 --> 3 elementi)
    Grazie mille, ciao.
     
  2. AC1

    AC1 Nuovo Utente

    Registrato:
    13 Novembre 2017
    Messaggi:
    25
    Mi Piace Ricevuti:
    2
    Punteggio:
    3
    Sesso:
    Maschio
    Occupazione:
    TLC/INFORMATICO/DEVELOPER/GRAPHIC DESIGNER
    Località:
    Barletta
    Visto in maniera rapida

    Metti dei contatori per ogni chiave

    C1 ++ per la chive 1 è così via
     
  3. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    926
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Esempio pratico e funzionale allo scopo...
    PHP:
    function contaElementi($data,&$result=[]){

       if(
    is_array($data)){
          foreach (
    $data as $k=>$v){
             if(
    is_array($v))$result[$k]=count($v);
          }
       }
    }
    function 
    test_conta_elementi(){
       
    $a=[
          [
    1,2,3],
          [
    1,2,3,4,5,6,7],
          [
    1,2,3,4,5],
          [
    1,2],
          [
    1,2,3,4,5,6,7,8,9,10],
       ];
       
    $result=[];
       
    contaElementi($a,$result);
       
    print_r($result);
    }
    //la richiami in questo modo
    test_conta_elementi()
    Nel caso devi effettuare dei cicli basterebbe utilizzare il foreach!
     
    A AC1 piace questo elemento.
  4. samurai.sette

    samurai.sette Utente Attivo

    Registrato:
    17 Dicembre 2015
    Messaggi:
    192
    Mi Piace Ricevuti:
    5
    Punteggio:
    18
    Ciao ragazzi. Grazie mille, siete stati gentilissimi.
    scusate se ne approfitto ma vorrei chiedervi un altro consiglio.
    Se da un array multidimensionale (con lo stesso numero di elementi in ciascuna chiave) volessi estrarre in stringhe tutti i dati che si trovano nelle stesse posizioni, come faccio?
    Faccio un esempio. Ipotizziamo di avere questo array:
    PHP:
    Array
    (
        [
    0] => Array
            (
                [
    0] => 2018-12-31
                
    [1] => 05:57:00
                
    [2] => -0.001
                
    [3] => -0.005
                
    [4] => -0.002
            
    )

        [
    1] => Array
            (
                [
    0] => 2018-12-31
                
    [1] => 06:17:27
                
    [2] => -0.001
                
    [3] => -0.005
                
    [4] => -0.003
            
    )

        [
    2] => Array
            (
                [
    0] => 2018-12-31
                
    [1] => 06:37:55
                
    [2] => -0.001
                
    [3] => -0.005
                
    [4] => -0.004
            
    )
    )
    Da questo array vorrei creare delle stringhe 4 stringhe. In ogni stringa vorrei inserire rispettivamente:
    Stringa1: date
    Stringa2: ore
    Stringa3: valori chiave secondaria "2"
    .
    .
    .
    Suppongo debba usare un ciclo "for" dentro un altro ciclo "for" ma non riesco a ottenere esattamente quello che vorrei.
    Questo è quello he ho scritto:
    PHP:
    for ($a 0$a <= 2$a ++)
    {
        for (
    $b 0$b <= 4$b ++)
        {
            
    $stringa $array[$a][$b];
        }
    }
    Secondo voi dove sbaglio?
    Ciao, grazie mille
     
    Ultima modifica: 13 Settembre 2019
  5. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    926
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Basterebbe utilizzare la map...

    PHP:
    $mapItems=[0,1,2];
    foreach(
    $array as $k=>$v)foreach($mapItems as $item)echo 'Stringa el '.$k.' item  - '.$item.' result ='.$v[$item];
     
    A AC1 piace questo elemento.
Sto caricando...

Condividi questa Pagina