Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

MasterGipy

Problema com índices de arrays [Resolvido]

Mensagens Recomendadas

MasterGipy

Tenho estes 2 ficheiros:

languages.txt

01,d
02
03
05
13
04

index.php:

<?

$languages = "languages.txt";
$fh = fopen($languages, 'r');
$language = fread($fh, filesize($languages));
fclose($fh);
$res  = explode("\n", $language);

$total_language = array(
"01,n" => 'English (UK)',
02 => 'French',          
03 => 'German',          
04 => 'Spanish',          
05 => 'Italian',          
06 => 'Swedish',          
07 => 'Danish',          
08 => 'Norwegian',      
09 => 'Finnish',          
10 => 'English (American)',        
11 => 'Swiss French',  
12 => 'Swiss German',  
13 => 'Portuguese',      
14 => 'Turkish',          
15 => 'Icelandic',      
16 => 'Russian',         
17 => 'Hungarian',      
18 => 'Dutch',          
19 => 'Belgian Flemish',  
20 => 'English (Australian)',
21 => 'Belgian French',  
22 => 'German (Austrian)',        
23 => 'English (New Zealand)',    
24 => 'French (International)',    
25 => 'Czech',          
26 => 'Slovak',          
27 => 'Polish',          
28 => 'Slovenian',      
29 => 'Chinese (Taiwan)',       
30 => 'Chinese (Hong Kong)',      
31 => 'Chinese (China)',  
32 => 'Japanese',      
33 => 'Thai',          
34 => 'Afrikaans',      
35 => 'Albanian',      
36 => 'Amharic',                   
37 => 'Arabic',                   
38 => 'Armenian',     
39 => 'Tagalog',          
40 => 'Belarussian',                
41 => 'Bengali',              
42 => 'Bulgarian',      
43 => 'Burmese',         
44 => 'Catalan',        
45 => 'Croatian',     
46 => 'English (Canadian)',        
47 => 'English (International)',
48 => 'English (South African)',
49 => 'Estonian',      
50 => 'Farsi',          
51 => 'French (Canadian)',     
52 => 'Gaelic',          
53 => 'Georgian',      
54 => 'Greek',          
55 => 'Greek (Cyprus)',  
56 => 'Gujarati',      
57 => 'Hebrew',          
58 => 'Hindi',          
59 => 'Indonesian',      
60 => 'Irish',          
61 => 'Swiss Italian',  
62 => 'Kannada',          
63 => 'Kazakh',          
64 => 'Khmer',          
65 => 'Korean',          
66 => 'Laothian',     
67 => 'Latvian',          
68 => 'Lithuanian',      
69 => 'Macedonian',      
70 => 'Malay',          
71 => 'Malayalam',      
72 => 'Marathi',          
73 => 'Moldovian',      
74 => 'Mongolian',      
75 => 'Norwegian Nynorsk',        
76 => 'Brazilian Portuguese',    
77 => 'Punjabi',          
78 => 'Romanian',      
79 => 'Serbian',         
80 => 'Sinhalese',      
81 => 'Somali',          
82 => 'Spanish (International)',    
83 => 'Spanish (Latin American)',
84 => 'Swahili',          
85 => 'Swedish (Finland)',
87 => 'Tamil', 
88 => 'Telugu',    
89 => 'Tibetan',        
90 => 'Tigrinya',     
91 => 'Turkish (Cyprus)',       
92 => 'Turkmen',         
93 => 'Ukrainian',    
94 => 'Urdu',         
96 => 'Vietnamese',    
97 => 'Welsh',    
98 => 'Zulu');


$total = $total_language[$res[0]]; 
echo $total;

?>

Porque nao mostra o $total? Neste caso deveria ser English (UK)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Eu acho que tem a ver com o tipo de dados das chaves. aliás, parece-me que foi o que yoda quis dizer ali no post dele.

Experimenta fazer

var_dump($total_language);

para vermos os tipos de dados das chaves. Isso vai dar uma coisa gigante, mas podes colocar aqui.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
MasterGipy

array(95) { ["01,n"]=>  string(12) "English (UK)" [2]=>  string(6) "French" [3]=>  string(6) "German" [4]=>  string(7) "Spanish" [5]=>  string(7) "Italian" [6]=>  string(7) "Swedish" [7]=>  string(6) "Danish" [0]=>  string(7) "Finnish" [10]=>  string(18) "English (American)" [11]=>  string(12) "Swiss French" [12]=>  string(12) "Swiss German" [13]=>  string(10) "Portuguese" [14]=>  string(7) "Turkish" [15]=>  string(9) "Icelandic" [16]=>  string(7) "Russian" [17]=>  string(9) "Hungarian" [18]=>  string(5) "Dutch" [19]=>  string(15) "Belgian Flemish" [20]=>  string(20) "English (Australian)" [21]=>  string(14) "Belgian French" [22]=>  string(17) "German (Austrian)" [23]=>  string(21) "English (New Zealand)" [24]=>  string(22) "French (International)" [25]=>  string(5) "Czech" [26]=>  string(6) "Slovak" [27]=>  string(6) "Polish" [28]=>  string(9) "Slovenian" [29]=>  string(16) "Chinese (Taiwan)" [30]=>  string(19) "Chinese (Hong Kong)" [31]=>  string(15) "Chinese (China)" [32]=>  string(8) "Japanese" [33]=>  string(4) "Thai" [34]=>  string(9) "Afrikaans" [35]=>  string(8) "Albanian" [36]=>  string(7) "Amharic" [37]=>  string(6) "Arabic" [38]=>  string(8) "Armenian" [39]=>  string(7) "Tagalog" [40]=>  string(11) "Belarussian" [41]=>  string(7) "Bengali" [42]=>  string(9) "Bulgarian" [43]=>  string(7) "Burmese" [44]=>  string(7) "Catalan" [45]=>  string(8) "Croatian" [46]=>  string(18) "English (Canadian)" [47]=>  string(23) "English (International)" [48]=>  string(23) "English (South African)" [49]=>  string(8) "Estonian" [50]=>  string(5) "Farsi" [51]=>  string(17) "French (Canadian)" [52]=>  string(6) "Gaelic" [53]=>  string(8) "Georgian" [54]=>  string(5) "Greek" [55]=>  string(14) "Greek (Cyprus)" [56]=>  string(8) "Gujarati" [57]=>  string(6) "Hebrew" [58]=>  string(5) "Hindi" [59]=>  string(10) "Indonesian" [60]=>  string(5) "Irish" [61]=>  string(13) "Swiss Italian" [62]=>  string(7) "Kannada" [63]=>  string(6) "Kazakh" [64]=>  string(5) "Khmer" [65]=>  string(6) "Korean" [66]=>  string(8) "Laothian" [67]=>  string(7) "Latvian" [68]=>  string(10) "Lithuanian" [69]=>  string(10) "Macedonian" [70]=>  string(5) "Malay" [71]=>  string(9) "Malayalam" [72]=>  string(7) "Marathi" [73]=>  string(9) "Moldovian" [74]=>  string(9) "Mongolian" [75]=>  string(17) "Norwegian Nynorsk" [76]=>  string(20) "Brazilian Portuguese" [77]=>  string(7) "Punjabi" [78]=>  string(8) "Romanian" [79]=>  string(7) "Serbian" [80]=>  string(9) "Sinhalese" [81]=>  string(6) "Somali" [82]=>  string(23) "Spanish (International)" [83]=>  string(24) "Spanish (Latin American)" [84]=>  string(7) "Swahili" [85]=>  string(17) "Swedish (Finland)" [87]=>  string(5) "Tamil" [88]=>  string(6) "Telugu" [89]=>  string(7) "Tibetan" [90]=>  string(8) "Tigrinya" [91]=>  string(16) "Turkish (Cyprus)" [92]=>  string(7) "Turkmen" [93]=>  string(9) "Ukrainian" [94]=>  string(4) "Urdu" [96]=>  string(10) "Vietnamese" [97]=>  string(5) "Welsh" [98]=>  string(4) "Zulu" } 

da isto...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Excepto o primeiro, todos os outros indíces são numéricos, e tu estás a passar strings. Tens de usar uma função de conversão para obteres o índice ou alterares todas as chaves para chaves do tipo string.

Função de conversão: usar a função intval

ou

Trocar as chaves do array: Os indices passam de

(...)
11 => 'Swiss French',  
12 => 'Swiss German',  
13 => 'Portuguese',      
14 => 'Turkish',  
(....)

a

'11' => 'Swiss French',  
'12' => 'Swiss German',  
'13' => 'Portuguese',      
'14' => 'Turkish',  


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.