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

    Array multidimensionale

    Ho un problema,

    Ho un certo numero di file txt, all'interno dei quali devo riconoscere dei tag e prendere le relative parole chiave.

    A questo punto devo creare un array bidimensionale che abbia come indici i nomi dei file (che corrispondono a pagine html) e come valori le parole chiave che ho trovato.
    Devo ottenere un array del tipo:

    array = [pagina1] - [key1]
    [pagina1] - [key2]
    [pagina2] - [key1]
    [pagina2] - [key3]

    (in realtà mi va bene ovviamente anche il contrario ovvero per indici le keywords e per valori i nomi delle pagine)

    Ma non riesco a riempire un array bidimensionale con un loop:

    questo è il codice che sto usando:

    Codice PHP:
    $keywords = array();
        while (
    false !== ($file readdir($hand))) {
            if(
    strpos($file".txt"0) !== false){
                
    $lnk substr($file0, -4);
                
    $i strpos($lst"/it/"0);
                if(
    $i===false)
                    
    $j "";
                else 
    $j substr($lst$i+4)."/";
                
    $local $j.$lnk;
                
    $pgtxt getFile("$p/$local.txt");
                
    $keyarr = array();
                
    $key strpos($pgtxt"keywords("0);
                if(
    $key !== false){
                    
    $keyend strpos($pgtxt")"$key);
                    
    $keytxt substr($pgtxt$key +9$keyend $key -9);
                    
    $keyarr split(','$keytxt);
                    foreach (
    $keyarr as $v){
                        
    $keywords = array ($local => $v);
                    }
                }
            }
        } 
    Ovviamente tutta la prima parte è relativa alla costruzione del percorso corretto all'interno del server ed è ininfluente...

    La costruzione parte dall'ultimo IF, se trova il tag "keywords" prende quello che c'è scritto fra parentesi, lo splitta con le virole e lo mette in un array...


    ma è un semplice esperimento, qualcuno mi sa dire dove sbaglio o semplicemente sa farmi vedere come fare??

  2. #2
    Codice PHP:
    $keywords = array(); 
    while (
    false !== ($file readdir($hand))) { 
        if(
    strpos($file".txt"0) !== false){ 
            
    $lnk substr($file0, -4); 
            
    $i strpos($lst"/it/"0); 
            if(
    $i===false
                
    $j ""
            else 
    $j substr($lst$i+4)."/"
            
    $local $j.$lnk
            
    $pgtxt getFile("$p/$local.txt"); 
            
    $keyarr = array(); 
            
    $key strpos($pgtxt"keywords("0); 
            if(
    $key !== false){ 
                
    $keyend strpos($pgtxt")"$key); 
                
    $keytxt substr($pgtxt$key +9$keyend $key -9); 
                
    $keyarr split(','$keytxt); 
                
                
    $keywords[$local] = $keyarr// assegni un array ad un indice
            

        } 

    intendi cosi' (supposto che $local contenga il tuo nome del file)?

  3. #3
    $local è infatti il nome del file che devo memorizzare negli indici (o nelle chiavi, ripeto, l'importante è avere un array che abbia le corrispondenze)

    Con quella riga cosa ottengo, come sarà composto l'array $keywords??

  4. #4
    beh fai un print_r e lo vedi subito

    comunque sara' un array associativo, i cui elementi avranno come indice il nome del tuo file e come valore un ulteriore array (multidimensionalita'), i quali avranno un indici numerici e i valori dati dall'explode


    ciao
    danno

  5. #5
    Perfetto, il risultato è un array i cui valori sono array con indici numerici e chiavi con le keywords, ottimo

    ma perchè se faccio il sort di quell'array mi va in errore???

    PS:grazie mille Danno.

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.