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

    array a più dimensioni per principiante

    ciao a tutti!
    sto iniziando con il php e ho un problema nel creare un array a più dimensioni
    mi spiego

    ho due cicli while in cui estraggo due variabili

    while ($squadra1_row = mysql_fetch_array($squadra1_sql)) {
    $id_squadra1 = $tsquadra1_row['id'];
    $nome_squadra1 = $squadra1_row['squadra2'];
    }

    while ($squadra2_row = mysql_fetch_array($squadra2_sql)) {
    $id_squadra2 = $tsquadra2_row['id'];
    $nome_squadra2 = $squadra2_row['squadra2'];
    }

    Ora dovrei mettere tutto i valori estratti dai due cicli in un array a più dimensioni del tipo

    $squadre = array( array( id => "id_squadrax",
    nome => "nome_squadrax
    ),
    ...
    );

    Ma non ho ben capito il meccanismo di aggiunta degli array.

    Qualche indizio?

    Grazie...

    s.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Allora, gli arrai multidimensionali li puoi creare in più modi. Puoi farlo utilizando la funzione (?) "array()" o utilizzando la sintassi "$array[]".
    Per la prima puoi fare come hai detto tu, in pratica crei un array invece del valore numerale/stringa.
    Per il secondo metodo, quello che devi utilizzare nel tuo caso, devi fare:
    Codice PHP:
    $array = array(); //definisco l'array a 1 dimensione
    $array[0] = array(); //definisco il secondo array e faccio diventare l'array a 2 dimensioni
    $array[0][0] = "variabile"//assegno la variabile

    //o più semplicemente posso fare:

    $array[0][0] = "variabile" //senza definire nulla 
    Per fare quello che ti serve devi cambiare la query (se possibile) che usi per ottenere id e nome squadra. Io non so quello che usi tu, ma se fai:
    codice:
    SELECT * FROM tabella WHERE squadra2 = nome_squadra
    Devi unire tutto in un unica query:
    codice:
    SELECT * FROM tabella
    In modo che ti viene più facile da processare.

    In fine metti il ciclo while:
    Codice PHP:
    $arraysquadre = array();
    while (
    $row mysql_fetch_array($result)) {
    $arraysquadre[$id] = array();
    $arraysquadre[$id]["id"] = $result['id'];
    $arraysquadre[$id]["nome"] = $result['squadra2'];

    Quando poi li vorrai elaborare puoi fare un semplicissimo foreach:
    Codice PHP:
    foreah($arraysquadre as $id => $array){
    //qui il codice sapendo che $array conterrà il tuo array
    //ovvero $array["id"] e $array["nome"] 

    Fine.
    Spero di essere stato utile,

  3. #3
    innanzitutto grazie!

    la query (per me) è un po' complessa e non riesco ad unirla;

    se io faccio direttamente in entrambi i cicli

    $squadra_array[] = array('id'=> $id_squadraX, 'nome'=>$nome_squadraX);

    l'array risultante dovrebbe essere quello che cerco

    Array ( [0] => Array ( [id] => 1 [nome] => pippo ) [1] => Array ( [id] => 1 [nome] => pippo ) [2] => Array ( [id] => 2 [nome] => pluto ) [3] => Array ( [id] => 3 [nome] => bea ) )

    (poi ci metto una funzione che mi elimina i duplicati

    function uniqueArray($nDimArray) {
    if(!is_array($nDimArray))
    {
    return $nDimArray;
    }

    foreach($nDimArray as &$val) {
    $val = serialize($val);
    }
    $nDimArray = array_unique($nDimArray);
    foreach($nDimArray as &$val) {
    $val = unserialize($val);
    }
    return $nDimArray;
    }

    (presa da qui )

    e ho il mio bell'array, giusto?

    grazie ancora!

    s.

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.