2015-11-01 2 views
-2

Учитывая массив:Как искать значение для условия внутри массива

Array 
(
    [0] => Array 
     (
      [Footer] => Array 
       (
        [id] => 1 
        [field] => about 
        [fvalue] => 
We dream to change our country. nmnmn 



       ) 

     ) 

    [1] => Array 
     (
      [Footer] => Array 
       (
        [id] => 2 
        [field] => contact 
        [fvalue] => 


       <h2>Our Contacts</h2> 

       <address class="margin-bottom-40"> 

        Shekertek, Road: #3 <br> 

        Dhaka, Bangladesh<br> 

        Phone: 01673050495<br> 

        Email: <a href="[email protected]">[email protected]</a><br> 

        Skype: <a href="skype:jegeachi.support">jegeachi.support</a> 

       </address> 





       ) 

     ) 

) 

здесь два элемента. Элементы могут быть 10 или более. Я хочу получить значение индекса «fvalue» внутри этого массива для заданного значения индекса «field». Например, если я дам «о» этому массиву, он даст мне «Мы мечтаем изменить нашу страну. nmnmn 'Как я могу это сделать.

+0

Вы пытались что-нибудь? Что-то вроде цикла foreach? –

ответ

1

У меня есть два варианта для вас:

$searchField = 'about'; 
$key = array_search($searchField, array_column(array_column($arr, 'Footer'), 'field')); 
echo $arr[$key]['Footer']['fvalue']; 

ИЛИ

$searchField = 'about'; 
$result = array_filter(array_column($arr, 'Footer'), function($arr) use($searchField){return $arr['field'] == $searchField;}); 
echo $result[0]['fvalue']; 
0

вы можете достичь той же самой вещи, используя простой цикл foreach, оберните это внутри функции и используйте в любом месте, где хотите.

foreach ($yourArray as => $value) { 
    if($value['footer']['field'] == 'about'){ 
     echo $value['footer']['fvalue']; 
    } 
} 

в функции вы можете сделать

function getFvalue($yourArray,$fvalue){ 
    foreach ($yourArray as $value) { 
     if($value['footer']['field'] == $fvalue){ 
      return $value['footer']['fvalue']; 
     } 
    } 
} 

Надеется, что это поможет вам.

Смежные вопросы