Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590

    merge array associativo

    salve, ho un array associativo abbastanza lungo del tipo:
    Codice PHP:
    $arr=array('2000'=>$valore1,'2001'=>$valore2,'2002'=>$valore3.........) 
    $valore1,$valore2,$valore3 sono a loro volta array associativi. Ciascun array ha un campo 'ID' e un campo 'children'. in pratica $valore1,$valore2,$valore3 descrivono degli 'oggetti'.
    Vorrei fare un 'merge' particolare:
    vorrei unire 3 $valori alla volta: così l'ID non indica più un solo $valore ma un range di $valori:

    il risultato dovrebbe essere:
    Codice PHP:
    array('2000-2002'=>MERGE($valore1,$valore2,$valore3),'2003-2006'=>MERGE($valore4,$valore5,$valore6)) 
    avete idee?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova cosi.

    array('2000-2002'=>array_merge($valore1,$valore2,$valore3),'2003-2006'=>array_merge($valore4,$valore5,$valore6))
    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

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Rileggendo ho capito quello che intendevi.

    Codice PHP:
    function my_merge($arrayIn,$profondita) {
     
    $arrayOut = array();
     
    $num_pos  count($arrayIn);
     
    $conta    1;
     
     
    $index    1
     
    $temp     = array();
     foreach (
    $arrayIn as $key => $subArray) {
       if (
    $index == 1) {
       
    $temp     = array();
       
    $startKey $key;
      }  
      
      
    $temp array_merge($temp,$subArray);
      
      if (
    $index == $profondita || $num_pos == $conta) {
       
    $endKey   $key;
      
    $arrayOut[$startKey.'-'.$endKey] = $temp;
      
    $index    0;
      }  
      
    $conta++;
      
    $index++;
     } 
    // foreach ($arrayIn as $subArray) 
     
     
    return $arrayOut;
    // function my_merge($arrayIn,$profondita)

    $arr=array('2000'=>$valore1,'2001'=>$valore2,'2002'=>$valore3,'2004'=>$valore4,'2005'=>$valore5,'2006'=>$valore6);  

    $new_array my_merge($arr,3); 
    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
    Registrato dal
    Oct 2011
    Messaggi
    590
    scrivendo il quesito ho semplificato molto la struttura dell'array, ma mi pare proprio che il tuo codice c'entri il problema. Devo solo adattarlo alla vera struttura, grazie mille del tempo speso

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 © 2025 vBulletin Solutions, Inc. All rights reserved.