2014-02-19 77 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