Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema con array

  1. #1

    Problema con array

    Ciao!
    Non so perchè ma non riesco ad inserire una stringa all'interno di un array multidimensionale.
    Probabilmente è una cavolata... qualcuno può dirmi dove sbaglio?

    Questo è il codice:
    Codice PHP:
            $n=0;
            
    $m=0;

            for (
    $i=0$i<count($aMenuApp);$i++){
                if (
    $aMenuApp[$i]['parent_id']==2){
                    echo 
    "N: ".$n."
    "
    ;
                    
    $aMainMenu[$n]['id'] = $aMenuApp[$i]['id'];
                    
    $aMainMenu[$n]['parent_id'] = $aMenuApp[$i]['parent_id'];
                    
    $aMainMenu[$n]['title'] = $aMenuApp[$i]['title'];
                    
    $aMainMenu[$n]['description'] = $aMenuApp[$i]['description'];
                    
    $aMainMenu[$n]['link'] = $aMenuApp[$i]['link'];
                    
    $n++;
                    if (
    $aMenuApp[$i]['title']!=""){
                        echo 
    "E il primo c'è... 
    "
    ;
                    }
                    if (
    $aMainMenu[$n]['title']==""){
                        echo 
    "E invece il secondo no! 
    "
    ;
                    }
                } 
    Praticamente c'è gia un array simile ($aMenuApp), io devo filtrare solo quelli che hanno come parent_id=2, e inserirli in un nuovo array... però partendo da 0, altrimenti il primo indice dell'array $aMainMenu avrebbe numeri casuali, mentre a me servono ordinati.


    Dove sbaglio?

    Grazie mille!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non ho capito se vuoi preservare gli indici dell'array o meno, forse è questo il punto, comunque cosi a occhio ti consiglio di guardare array_filter.

    questa discussione può esserti d'aiuto:

    http://forum.html.it/forum/showthrea...8#post11865838

    ciao

  3. #3
    Se usassi array_filter, mi troverei come prima chiave dei numeri non ordinati, perchè mancherebbero tutti i numeri per i quali il parent_id di $aMenuApp è diverso da 2.

    Cerco di fare un esempio, così si capisce meglio...
    Mettiamo che ho:
    Codice PHP:
    $aMenuApp[0][parent_id]=0;
    $aMenuApp[0][title]="Primo";

    $aMenuApp[1][parent_id]=2;
    $aMenuApp[1][title]="Secondo";

    $aMenuApp[2][parent_id]=1;
    $aMenuApp[2][title]="Terzo";

    $aMenuApp[3][parent_id]=2;
    $aMenuApp[3][title]="Quarto"
    Vorrei ottenere un altro array così formato:
    Codice PHP:
    $aMainMenu[0][parent_id]=2;
    $aMainMenu[0][title]="Secondo";

    $aMainMenu[1][parent_id]=2;
    $aMainMenu[1][title]="Quarto"

    Capito?
    Quello che non capisco è perchè col codice nel primo post, quando lo eseguo mi stampa sempre:
    E il primo c'è...
    E invece il secondo no!

    Praticamente non riesce a riempire l'array $aMainMenu... perchè???

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    $aMenuApp[0][parent_id]=0;
    $aMenuApp[0][title]="Primo";
    
    $aMenuApp[1][parent_id]=2;
    $aMenuApp[1][title]="Secondo";
    
    $aMenuApp[2][parent_id]=1;
    $aMenuApp[2][title]="Terzo";
    
    $aMenuApp[3][parent_id]=2;
    $aMenuApp[3][title]="Quarto";
    
    $aMainMenu = array();
    
    foreach($aMenuApp as $key => $nodo) {
      if($nodo['parent_id'] == 2) {
        $aMainMenu[] = $nodo;
      }
    }
    Cosi va?

    ciao

  5. #5
    Originariamente inviato da gianiaz
    codice:
    foreach($aMenuApp as $key => $nodo) {
      if($nodo['parent_id'] == 2) {
        $aMainMenu[] = $nodo;
      }
    }
    Non va bene perchè entrambi sono array multidimensionali.
    Questo andrebbe bene nel caso fossero array semplici...

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da Ciromarello
    Non va bene perchè entrambi sono array multidimensionali.
    Questo andrebbe bene nel caso fossero array semplici...
    non ho capito...

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.