Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    array associativo problema

    Salve, il seguente script va bene:

    <?php

    function permutate(&$array) {
    $len = sizeof($array);
    $permArray = array();
    for($i = 0; $i < $len; $i++) {
    perm($array[$i], $i, $len, $array, $permArray);
    }

    for($i = 0; $i < sizeof($permArray); $i++) {
    echo $permArray[$i]."
    ";
    }
    }


    function perm($str, $index, $length, &$elementArray, &$permArray) {
    if($index == $length)
    return;

    $permArray[] = $str;
    for($j = $index; $j+1 < $length; $j++) {
    perm($str.$elementArray[$j+1], $j+1, $length, $elementArray, $permArray);
    }
    }

    $myArray[] = "a";
    $myArray[] = "b";
    $myArray[] = "c";
    $myArray[] = "d";
    $myArray[] = "e";

    permutate($myArray);

    ?>


    Però volendolo trasformare in un array associativo (in modo da eseguire la funzione permutate solo sugli elenti che hanno la chiave "8", per esempio, non va più...

    Ho solo cambiato in questo:

    $myArray['8'] = "a";
    $myArray['8'] = "b";
    $myArray['9'] = "c";
    $myArray['7'] = "d";
    $myArray['8'] = "e";




  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    beh cosi a colpo d'occhio direi che è colpa dei cicli for che ciclano l'array usandone gli indici.
    Se gli indici non sono consecutivi (o se non partono da 0) il ciclo non funzia più.

    Prova magari con dei foreach


  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    giusto ma...

    Ciao...sicuro è per quello...non è che mi diresti come metterli questi cicli foreach...non sono molto pratico di array

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    per esempio...

    Mi basterebbe solo l'esempio di eseguire la funzione sugli elementi con chiave '8'...quindi sostituire il ciclo da 0 a ... con un ciclo che conta solo gli elementi con chiave '8' (indipendentemente dal loro ordine progressivo) oppure mantenere l'indice (visto che gli elementi me li accoda) ma mettere un altro campo chiave (si può?).
    Sono veramente alal frutta, ragazzi...

  5. #5
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Ma scusa na cosa....

    Se nello stesso array, allo stesso indice assegni più valori...quei valori vengono sovrascritti...è ovvio che non funzioni

    Non puoi avere duplicazione di indici...

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.