Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108

    Array che trasla in senso orario

    Salve a tutti,
    vorrei poter sapere come si potrebbe realizzare un array di caratteri,
    per esempio
    parola("A", "B", "C", "D", "E", "F")
    che trasla gli elementi in senso orario,
    io avevo pensato al codice sottostante

    function shift_array($squ_sh, $num_squadre)
    {
    for( $j =0 ; $j< )
    echo "Ora eseguo uno shift
    ";
    $tmp_array[0] = $squ_sh[($num_squadre - 2)];
    for( $i=0; $i<= ($num_squadre -3); $i++)
    {
    $tmp_array[$i+1] = $squ_sh[$i];


    }

    for($j=0; $j<=(num_squadre - 2); $j++)
    {
    $squ_sh[$j] = $tmp_array[$j];
    }

    print_r($squ_sh);
    }

    però non sembra funzionare.
    come potrei fare.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    cosa vorrebbe dire "traslare in senso orario"?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108
    forse è meglio dire shiftare gli elementi verso dx,
    esempio

    passo 1
    A,B,C,D,E

    passo2
    E,A,B,C,D

    passo3
    D,E,A,B,C

    .....
    ....
    fino a riavere
    A,B,C,D,E

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    function shifta(&$array) {
      
    $elemento array_shift($array);
      
    array_push($array$elemento);
      return 
    $elemento;


  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108
    ma io cosa sbaglio nel mio codice???
    perchè non funziona???

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    quello che ti ha scritto è più veloce, fidati può darsi che comunque serva un sort

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    for( $j =0 ; $j< )
    già questo for monco non ce lo vedo bene (Se non è un errore di copiatura qui)
    Mi spiace ma non riesco a capirlo il tuo codice.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108
    ma come lo inserisco nel mio codice,
    mi sembra di vedere che la funzione ritorna
    un elemento e non l'array traslato.
    cmq grazie per l'attenzione e scusate la mia ignoranza.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108
    ok,
    la mia idea è di usare un vettore di appoggio, però evidentemente non funziona così.
    come inserisco il tuo codice nel mio contesto?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    se quello non funziona prova con
    codice:
    <?php
    function shifta($array) {
    $tmp = array();
    for($i=0;$i<count($array);$i++) {
      if($i == count($array)-1) {
        $tmp[0] = $array[$i];
      }else{
        $tmp[$i+1] = $array[$i];
      }
    }
    ksort($tmp);
    reset($tmp);
    return $tmp;
    }
    ?>
    ovviamente l'array dev'essere con chiavi numeriche che partono da zero e proseguono progressivamente

    se vuoi una funzione che shifti i sottoarray

    codice:
    <?php
    function shifta($array) {
    $tmp = array();
    for($i=0;$i<count($array);$i++) {
      if($i == count($array)-1) {
        $tmp[0] = is_array($array[$i]) ? shifta($array[$i]) : $array[$i];
      }else{
        $tmp[$i+1] = is_array($array[$i]) ? shifta($array[$i]) : $array[$i];
      }
    }
    ksort($tmp);
    reset($tmp);
    return $tmp;
    }
    ?>

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.