Ciao a tutti, sono nuova in php e ho un array che non riesco ad ordinare alfabeticamente partendo dai codici delle lingue che estraggo:
la query è:
Da cui ottengo il seguente array multidimensionale, dove per ogni servizio (1,2,3) ottengo un array con lingua di partenza che a sua volta contiene un array con lingua di arrivo:
Array ( [1] => Array ( [AM] => Array ( [0] => EN ) [DE] => Array ( [0] => JA [1] => IT [2] => KO ) [EN] => Array ( [0] => IL [1] => ZU [2] => LA [3] => SD [4] => ET [5] => GA [6] => ZH-s [7] => AM [8] => ARM [9] => CY [10] => SU [11] => MN [12] => DE [13] => HA [14] => KN [15] => GU [16] => TH [17] => KA [18] => BN [19] => IT [20] => TK [21] => KO [22] => XH [23] => PS [24] => NO [25] => ST [26] => LO [27] => AS [28] => ES [29] => PG [30] => JA [31] => PT [32] => KM [33] => PT-b [34] => MY [35] => OM [36] => OR [37] => NE [38] => HM [39] => RW [40] => RU [41] => FR [42] => IS [43] => SI [44] => KK [45] => LN [46] => SO [47] => TI ) [FR] => Array ( [0] => KO [1] => ES [2] => NO [3] => IT [4] => JA [5] => DE ) [IS] => Array ( [0] => EN ) [IT] => Array ( [0] => JA [1] => PT [2] => PT-b [3] => ZH-s [4] => RU [5] => DE [6] => FR [7] => EN [8] => NO ) [JA] => Array ( [0] => IT ) [KM] => Array ( [0] => EN ) [LO] => Array ( [0] => EN ) [MY] => Array ( [0] => EN ) [NE] => Array ( [0] => EN ) [NO] => Array ( [0] => FR ) [PG] => Array ( [0] => EN ) [PS] => Array ( [0] => EN ) [RU] => Array ( [0] => IT [1] => ZH-s ) [SI] => Array ( [0] => EN ) [SO] => Array ( [0] => EN ) [TI] => Array ( [0] => EN ) [TK] => Array ( [0] => EN ) [ZH-s] => Array ( [0] => IT [1] => ZH ) [ZU] => Array ( [0] => EN ) ) [2] => Array ( [EN] => Array ( [0] => IT [1] => BG [2] => DE [3] => ES [4] => NL [5] => SV [6] => RO [7] => CA ) [IT] => Array ( [0] => RO [1] => ES-a [2] => RU [3] => FR [4] => DE [5] => BG [6] => EN [7] => EN-a [8] => ES ) ) [3] => Array ( [IT] => Array ( [0] => RU [1] => DE [2] => FR [3] => ES [4] => EN ) ) )
Le lingue di arrivo (ultimo array) devono essere ordinate alfabeticamente in base alla lingua: l'ordinamento sarà diverso in base alla lingua nella quale si vuole visualizzare il sito.
La funzione che uso per ottenere il nome della lingua in base a quella del sito è:
$lingua = getLanguage($lang);
Con il seguente codice non riesco a ricostruire l'array corretto dopo l'ordinamento in base al nome della lingua:
Vi ringrazio per l'aiuto
la query è:
PHP:
$query = "SELECT service_id, partenza, arrivo
FROM ".$dbtblPrefix."_pricings
ORDER BY service_id, partenza";
if (!($result = @ mysql_query($query, $connection))) show_db_error();
// query DB and save in array
while ($row = @ mysql_fetch_array($result)) {
$array_service_arrivo[ $row['service_id'] ][ $row['partenza'] ][] = $row['arrivo'] ;
}
Da cui ottengo il seguente array multidimensionale, dove per ogni servizio (1,2,3) ottengo un array con lingua di partenza che a sua volta contiene un array con lingua di arrivo:
Array ( [1] => Array ( [AM] => Array ( [0] => EN ) [DE] => Array ( [0] => JA [1] => IT [2] => KO ) [EN] => Array ( [0] => IL [1] => ZU [2] => LA [3] => SD [4] => ET [5] => GA [6] => ZH-s [7] => AM [8] => ARM [9] => CY [10] => SU [11] => MN [12] => DE [13] => HA [14] => KN [15] => GU [16] => TH [17] => KA [18] => BN [19] => IT [20] => TK [21] => KO [22] => XH [23] => PS [24] => NO [25] => ST [26] => LO [27] => AS [28] => ES [29] => PG [30] => JA [31] => PT [32] => KM [33] => PT-b [34] => MY [35] => OM [36] => OR [37] => NE [38] => HM [39] => RW [40] => RU [41] => FR [42] => IS [43] => SI [44] => KK [45] => LN [46] => SO [47] => TI ) [FR] => Array ( [0] => KO [1] => ES [2] => NO [3] => IT [4] => JA [5] => DE ) [IS] => Array ( [0] => EN ) [IT] => Array ( [0] => JA [1] => PT [2] => PT-b [3] => ZH-s [4] => RU [5] => DE [6] => FR [7] => EN [8] => NO ) [JA] => Array ( [0] => IT ) [KM] => Array ( [0] => EN ) [LO] => Array ( [0] => EN ) [MY] => Array ( [0] => EN ) [NE] => Array ( [0] => EN ) [NO] => Array ( [0] => FR ) [PG] => Array ( [0] => EN ) [PS] => Array ( [0] => EN ) [RU] => Array ( [0] => IT [1] => ZH-s ) [SI] => Array ( [0] => EN ) [SO] => Array ( [0] => EN ) [TI] => Array ( [0] => EN ) [TK] => Array ( [0] => EN ) [ZH-s] => Array ( [0] => IT [1] => ZH ) [ZU] => Array ( [0] => EN ) ) [2] => Array ( [EN] => Array ( [0] => IT [1] => BG [2] => DE [3] => ES [4] => NL [5] => SV [6] => RO [7] => CA ) [IT] => Array ( [0] => RO [1] => ES-a [2] => RU [3] => FR [4] => DE [5] => BG [6] => EN [7] => EN-a [8] => ES ) ) [3] => Array ( [IT] => Array ( [0] => RU [1] => DE [2] => FR [3] => ES [4] => EN ) ) )
Le lingue di arrivo (ultimo array) devono essere ordinate alfabeticamente in base alla lingua: l'ordinamento sarà diverso in base alla lingua nella quale si vuole visualizzare il sito.
La funzione che uso per ottenere il nome della lingua in base a quella del sito è:
$lingua = getLanguage($lang);
Con il seguente codice non riesco a ricostruire l'array corretto dopo l'ordinamento in base al nome della lingua:
PHP:
foreach($array_service_arrivo as $ser=> $ar_l_part ) {
$ordin=array();
foreach( $ar_l_part as $l_part=> $ar_l_arr ) {
$l_part2 []= $l_part;
foreach( $ar_l_arr //array di lingue arrivo
as $l_arr//posizione nell'array
=> $l_ar_code ) //codici lingue arrivo
{
$array_test[$ser][]= $l_ar_code;
$lingua = getLanguage($lang);
$ar_l_arr = $l_ar_code;
$ordin[$l_ar_code]=$lingua[$l_ar_code];
asort($ordin);
}
}//FOREACH PER ORDINARE
foreach($ordin as $ar_l_arr => $l_ar_code)
{
$lang_ord_arr=$ar_l_arr;
$array_test[$ser][]= $l_ar_code; // NON RIESCO A OTTENERE L'ARRAY COMPLETO CORRETTO
//FINE
}
}
Vi ringrazio per l'aiuto
Ultima modifica di un moderatore: