2014-02-24 98 views
0

当数组中的某个值等于某个指定的值时,是否有一种简单的方法获取数组中的一组值?
例如,我retrive从数据库中该数组,其中它与网站上的活动语言:[$ active_lang]PHP - 从数组中的某个索引中获取元素,其中的某个元素具有一定的值

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [code] => pt 
      [idiom] => Português 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [code] => es 
      [idiom] => Espanhol 
     ) 

    [2] => Array 
     (
      [id] => 3 
      [code] => en 
      [idiom] => Inglês 
     ) 

) 

然后我得到的内容为活动语言:[$记录]

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [page_base_id] => 1 
      [language] => pt 
      [title] => Title pt 
      [subtitle] => Subtitle pt 
      [description] => Description pt 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [page_base_id] => 1 
      [language] => es 
      [title] => Title es 
      [subtitle] => Subtitle es 
      [description] => Description es 
     ) 

    [2] => Array 
     (
      [id] => 3 
      [page_base_id] => 1 
      [language] => en 
      [title] => Title en 
      [subtitle] => Subtitle en 
      [description] => Description en 
     ) 

) 

我现在需要的是回荡在foreach$active_lang的数组中内容的正确和避免做第二循环的方式到达正确的langua ge将显示在$records阵列内。我目前在使用这个代码:

<div class="tab-content"> 
    <?php 
    foreach ($active_lang as $lang) { ?> 
    <div class="tab-pane" id="tab_<?php echo $lang['code']; ?>"> 
    <div class="row-fluid "> 
     <div class="span12"> 
     <div class="control-group"> 
      <div class="controls"> 
      <label class="control-label">Ttile</label> 
      <input id="title_1_pt" type="text" class="span12 " value=" 
      <?php 
      foreach($records_languages as $record){ 
       if($record['language']==$lang['code']){ 
       echo $record['title']; 
       } 
      } 
      ?> 
      " /> 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 
    <?php } ?> 
</div> 

有没有办法做这样的事情?

<div class="tab-content"> 
    <?php 
    foreach ($active_lang as $lang) { ?> 
    <div class="tab-pane" id="tab_<?php echo $lang['code']; ?>"> 
    <div class="row-fluid "> 
     <div class="span12"> 
     <div class="control-group"> 
      <div class="controls"> 
      <label class="control-label">Ttile</label> 
      <input id="title_1_pt" type="text" class="span12 " value=" 
      <?php 
       // WHERE $records[language] == $lang['code'] ECHO THE [title] FROM THE SAME INDEX IN ARRAY 
      ?> 
      " /> 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 
    <?php } ?> 
</div> 
+1

1.您应该在查询时加入; 2.使用'array_filter' [肯定会使用循环。 – moonwave99

+0

1.我需要数组是独立的,所以我不能在查询中进行连接2.是否没有其他方法来使用第二个循环? – CIRCLE

回答

1

你可以在一开始就创建新的数组:

$records = array(); 
foreach ($records_languages as $record) { 
    $records[$record['language']] = $record; 
} 

然后用

$records[$lang['code']]['title'] 

,将节省您的一些循环。

+0

谢谢@Mateusz Drankowski,是的,我认为它必须是这样的,但我正在寻找一种更直观的方式来获取所需的信息 – CIRCLE

相关问题