Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    spezzare array in sottoarray

    ho un array numerico con struttura che si ripete di tre in tre
    array{
    [0] => '5',
    [1] => 'CH',
    [2] => 'Ringmaster Quest for Fame',
    ---------- < dove devo spezzarlo
    [3] => '6',
    [4] => 'CH',
    [5] => 'Bronxton Daruis'
    ..... continua indefinitamente ma mantiene struttura di tre in tre
    []
    []
    []
    }

    devo spezzarlo di tre in tre e ottenere un array suddiviso in array minori con chiavi associative ognuno dei quali contiene 3 campi dell'array di partenza:
    nuovoarray{
    [0] => array{[id] => '5', [title] => 'CH', [name] => 'Ringmaster Quest for Fame'}
    [1] => array{[id] => '5', [title] => 'CH', [name] => 'Bronxton Daruis'}
    [2] => etc. etc.
    }


    Tonyz
    www.staffords.it
    php work in progress database di staffordshire bull terrier(razza di cani)
    http://tonyz.altervista.org/

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    function redo_array($a)
    {
        
    $n count($a);
        
    $triplets $n/3;
        for(
    $i=0;$i<$triplets;$i++)
        {
            
    $i1 $i*3;
            
    $i2 $i1+1;
            
    $i3 $i2+1;
            
    $b['id'] = $a[$i1];
            
    $b['title'] = $a[$i2];
            
    $b['name'] = $a[$i3];
            
    $c[] = $b;
        }
        return 
    $c;    

    Forse non è la soluzione più elegante, ma funziona


  3. #3

    .........

    Ciao.
    Un'altro metodo tirato via pure
    questo:
    Codice PHP:
    <?php 
    $array 
    = array('green''red''yellow','green1''red1''yellow1','green2''red2''yellow2');
    $key = array('id''title''name');
    $n count($array);
    $triplets $n/3;
    $first 0;
    $second 3;
    for(
    $i=0;$i<$triplets;$i++)
    {
        echo 
    $first;
        echo 
    $second;
        
    $output[] = array_slice($array,$first,$second);
        
        
    $first+=3
    }
    foreach(
    $output as $arrayV)
    {
        
    $c[] = array_combine($key$arrayV);
    }
    echo 
    "<pre>";
    print_r($c);
    ?>
    Guarda se puoi prenderci qc spunto


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    grazie ho sicuramente quello che mi serviva
    www.staffords.it
    php work in progress database di staffordshire bull terrier(razza di cani)
    http://tonyz.altervista.org/

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    http://se2.php.net/manual/it/function.array-chunk.php

    edit. Ovviamente poi per ottenere le chiavi serve array_combine come suggerito da whisher.

    Codice PHP:
    <?php
    $array 
    = array(5,"CH","Ringmaster Quest for Fame",6,"CH","Bronxton Daruis");
    $associato = array();
    $chunkato array_chunk($array,3);
    $chiavi = array('id','title','name');
    foreach (
    $chunkato as $valore)
    $associato[] = array_combine($chiavi,$valore);
    echo 
    "<pre>";
    var_dump($associato);
    echo 
    "</pre>";
    ?>

  6. #6

    ..........

    Caruccio array_chunk
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.