Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110

    [php] array multidimensione e raggruppamento

    Ciao amici, nuovo quesito, ho letto in rete su pagine in inglesi (quindi capisco e non capisco...) che è possibile, avendo un array multi dimensione (credo sia corretto il termine) raggruppare per elementi il contenuto... mi spiego...

    ho questo array

    Array
    (
    [0] => Array
    (
    [0] => 29
    [1] => 06
    [2] => 2017
    )

    [1] => Array
    (
    [0] => 30
    [1] => 06
    [2] => 2017
    )

    [2] => Array
    (
    [0] => 01
    [1] => 07
    [2] => 2017
    )

    [3] => Array
    (
    [0] => 02
    [1] => 07
    [2] => 2017
    )

    [4] => Array
    (
    [0] => 03
    [1] => 07
    [2] => 2017
    )

    [5] => Array
    (
    [0] => 04
    [1] => 07
    [2] => 2017
    )

    [6] => Array
    (
    [0] => 05
    [1] => 07
    [2] => 2017
    )

    )

    ora io vorrei poter raggruppare in

    Array
    (
    [0] => Array
    (
    [0] => 29-30
    [1] => 06
    [2] => 2017
    )



    [1] => Array
    (
    [0] => 01-02-03-04
    [1] => 07
    [2] => 2017
    )

    )

    mi potete suggerire qualche funzione che mi permetta ciò?
    Forumista Kriptoniano

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Secondo me non esiste una funzione nativa di PHP che faccia ciò che chiedi, almeno non mi è mai capitato di averci a che fare.
    Molto pià probabilmente dovrai scriverla tu, basta ciclare sull'array ed un po' di controlli if per capire gli elementi con mese ed anno uguali per poi metterli nell'array di destinazione, che aggiornerai ad ogni iterazione sull'array di partenza.

    Prendi la prima data e la metti nell'array di destinazione, guardi la seconda, verifichi nell'array di destinazione se c'è una data con setesso mese ed anno, se c'è aggiungi il giorno, se non c'è inserisci una nuova entry con la data corrente e così via.

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Prova questo.

    Codice PHP:
    <?php
    //$inizio = date("2017-02-20");
    //$fine   = date("2017-03-31");
    $inizio date("20-02-2017");
    $fine   date("30-03-2017");
    $dateI  = new DateTime($inizio);
    $dateF  = new DateTime($fine);
    //---- 1 Giorno
    $intervallo = new DateInterval('P1D');
    $pippo     = array();
    $arrFinale = array();
    while (
    $dateI->format("Y-m-d") <= $dateF->format("Y-m-d")) {
     
    //print $dateI->format("d-m-Y")."<br/>";
     
    if (!isset($pippo[$dateI->format("Y-m")])) {
      
    $pippo[$dateI->format("Y-m")][0]  = $dateI->format("d");
      
    $pippo[$dateI->format("Y-m")][1]  = $dateI->format("m");
      
    $pippo[$dateI->format("Y-m")][2]  = $dateI->format("Y");
     } else {
      
    $pippo[$dateI->format("Y-m")][0] .= '-'.$dateI->format("d"); 
     }
     
     
    $dateI->add($intervallo);
    }
    foreach(
    $pippo as $subArray) {
     
    $arrFinale[] = $subArray;
    }
    print_r($arrFinale);
     
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    badaze... io non ho parole ... mi vuoi sposare?
    grazie, adesso mi metto e lo guardo per capire come sei riuscito a farlo
    non mi è del tutto chiaro... se hai un minuti mi potresti spiegare il codice... come è che funziona?
    se vuoi sempre, hai già fatto molto
    Ultima modifica di HammerFist; 24-06-2017 a 17:52
    Forumista Kriptoniano

  5. #5
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    Alhazred grazie mille
    Forumista Kriptoniano

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.