2014-02-19 78 views
-2

如何從同一目錄中的另一個php文件中的下列代碼回顯/ print_r url arry code=>'LV_ARTICLES_ARTICLECODE'從另一個多維數組中的多維數組中回顯信息

function BuildSearchIndex($showHomePage = False,$functionLanguage) 
{ 
    $index_arr = array 
    (
    array 
    (
    'directory'=>'data/articles',//bestands locatie is data/articles/ "alles" 
    'files_ext'=>array('xml'),//bestands extentie is "xml" 
    'tags'=>array //alle tags zijn tussen de <> tekens 
      (
      'LV_ARTICLES_DESCRIPTION' //artiekel omschrijvings tag 

      /*,'LV_ARTICLES_DESCRIPTIONANDMEASURE', 
      'LV_ARTICLES_SPECIFICATION'*/, 

      'LV_ARTICLES_ARTICLECODE' //artiekel code/ID tag 

      /*,'LV_ARTICLES_ARTICLECODE2', 
      'LV_ARTICLES_SHORTMEMO', 
      'LV_ARTICLES_LONGMEMO', 
      'LV_ARTICLES_ARTICLECODE2'*/ 
      ), 

    'url'=>array 
      (
      'action'=>'article', 

      /*'group_id'=>'content "/<LV_ARTICLES_GROUP>.*<LV_ARTICLES_ITEM>(.+)<\/LV_ARTICLES_ITEM>.*<\/LV_ARTICLES_GROUP>/isU"',*/ 

      'aid'=>'filename "/article_(\d+).xml/i"' 
      ), 

      'name'=>'LV_ARTICLES_DESCRIPTIONANDMEASURE', 
      'code'=>'LV_ARTICLES_ARTICLECODE', 
      'languages'=>array(), 
      'additional'=>array 
       (
       'price'=>'content "/<LV_ARTICLES_PRICE_EXVAT>(.+)<\/LV_ARTICLES_PRICE_EXVAT>/iU"', 
       'vat'=>'content "/<LV_ARTICLES_VAT>(.+)<\/LV_ARTICLES_VAT>/iU"', 
       'manufacturer'=>'content "/<LV_ARTICLES_MANUFACTURER>(.+)<\/LV_ARTICLES_MANUFACTURER>/iU"', 
       'categories'=>'content "/<LV_ARTICLES_GROUP>(.+)<\/LV_ARTICLES_GROUP>/isU"' 
       ) 

    ), 

    array 
    (
    'directory'=>'data/extrapages', 
    'files_ext'=>array('xml'), 
    'tags'=>array('LV_TITLE','LV_BODY'), 
    'url'=>array(
    'action'=>'extra', 
    'extra'=>'filename "/(.+).xml/i"'), 
    'name'=>'LV_TITLE', 
    'languages'=>array() 
    ) 
    ); 
    $clear_arr = array 
    (
    0=>array('dir'=>'./data/articles', 
       'languages'=>array()), 
    1=>array('dir'=>'./data/extrapages', 
       'languages'=>array()) 
    ); 

    $lang=$functionLanguage->getLanguageList(); 
    foreach ($lang as $v) 
    { 
    $index_arr[0]['languages'][$v['code']]='LV_ARTICLES_LANG_'.strtoupper($v['code']); 
    $index_arr[1]['languages'][$v['code']]='LV_'.strtoupper($v['code']); 
    $clear_arr[0]['languages'][$v['code']]=$v['code']; 
    $clear_arr[1]['languages'][$v['code']]=$v['code']; 
    } 

    try 
    { 
    $q=new Search(); 
    $q->clear_index($clear_arr); 
    $q->make_index($index_arr); 
    } 
    catch (Exception $e) 
    { 
    echo $e->__toString(); 
    } 

    if ($showHomePage) { 
    header('location: index.php?action=home&lang='.strtoupper($functionLanguage->getCurrentLanguage())); 
    } 

} 

我不知道爲什麼我必須添加更多的細節。我真的覺得我的問題很清楚。但任何方式,我首先嚐試$index_arr['']['url']['code']它可能是錯誤的第二個函數。我可以從那裏提取那些信息嗎?

+0

更多細節。看起來這可能是一個班級的一部分。並且該數組似乎不會返回,因此您可以使用它。我不認爲這種功能/方法的目的是這樣做。由名字來判斷。 – CommandZ

+1

$ index_arr [0] ['url'] ['code'] – Tommy

+0

感謝@Tommy的幫助。我認爲我做得很好。 – user3023611

回答

0

您需要在BuildSearchIndex函數中返回$index_arr。然後,當你從其他文件調用這個函數,你可以這樣做:

$array = BuildSearchIndex($param1, $param2); 
echo $array[0]['url']['code']; 

另一種方法,如果你不容回報功能的陣列,將通過引用傳遞$index_arr,做這樣的事情:

function BuildSearchIndex($showHomePage = False,$functionLanguage, &$index_arr) 
{ 
$index_arr = array 
    (
    array 
    (.... 

然後調用該函數這種方式,你將有機會獲得你想要的內容:需要

$array = array();  
BuildSearchIndex($param1, $param2, $array); 
echo $array[0]['url']['code']; 
+0

我在哪裏放回去? 在$ search_arr裏面?或者berfore關閉該功能? – user3023611

+0

你應該返回$ index_arr var在BuildSearchIndex函數的結尾處(在這個函數內),就像return $ index_arr – Tommy

+0

謝謝你的機器人,但現在我有責任並且不能訪問這些文件。在2弱點後,我將能夠嘗試這些建議。提前致謝。 – user3023611