2013-03-24 192 views
0

我想做一個腳本,檢查,如果有定義調用,然後調用它,並把它放在數組中。但問題是,如何檢查,如果有multy定義與不同的結局:例如在我的情況:「Language_Array_Set _'。$ i」。如果我宣佈4定義與名稱 「」 Language_Array_Set_1,Language_Array_Set_2,Language_Array_Set_3,Language_Array_Set_4" 。要叫所有的人,並把在一個陣列中。php語言系統

for($i = 0; $i < Language_Number; $i++) { 
    if(defined (string 'Language_Array_Set_'.$i)) { 
     return $available = array('Language_Array_Set_'.$i => 'en', 'Language_Array_Set_'.$i => 'lt');   // lt, en means that example: Language_Array_Set_1 = en 
    } 
} 
$result = array('en', 'lt'); //what do i want to show me. 

問我在哪裏需要尋找或你會做什麼?在我的位置上,或者你會怎麼做?謝謝解答

Language_Number在另一個文件中定義稱爲是正確的,現在擁有數:2

K,在這裏: 可能的輸入將是:

define("Language_Array_Set_1", "en"); 
define("Language_Array_Set_2", "lt"); 

...

輸出:

return array(en, lt); 

需要檢查Language_Array_Set_ $數量的多少確定,並與數字製造陣列。

「阿爾瓦羅·維卡里奧G.」謝謝, 但主要問題是如何在陣列中添加三根弦,如果有爲三所定義,如果兩個則兩項。

+0

我不明白這個問題。你能給出一些可能的輸入和你想要的輸出的例子嗎? – Dave 2013-03-24 20:58:14

+1

這似乎是對常量的嚴重濫用。 – cmbuckley 2013-03-24 20:58:52

回答

0

我會做這樣的事情:

<?php 
//Example constants 
define("Language_Array_Set_1", "en"); 
define("Language_Array_Set_2", "lt"); 

$definedConstants = get_defined_constants(); 
$languageArray = array(); 

foreach($definedConstants as $df => $value) { 
    //If first part of constant is Language_Array_Set_ then add 
    //defined constant into array $languageArray 
    if (substr($df,0,19) == 'Language_Array_Set_') { 
     $languageArray[] = $df; 
    } 

} 

//Output relevant information 
echo 'lang array=' . print_r($languageArray,true); 

$nrOfLanguages = count($languageArray); 
echo 'Nr of languages=' . $nrOfLanguages; 

?> 

輸出將是:語言

郎陣列=陣列([0] => Language_Array_Set_1 [1] => Language_Array_Set_2)NR = 2