如何在数组中搜索条件的值

时间:2015-11-01 16:06:22

标签: php arrays

给定数组:

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="jegeachi24@gmail.com">jegeachi24@gmail.com</a><br>

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

                </address>





                )

        )

)

这里有两个要素。元素可以是10或更多。我希望在给定的'field'索引值的数组中得到'fvalue'索引的值。例如,如果我对这个数组给出'约',它会给我'我们梦想改变我们的国家。 nmnmn'我怎么能这样做。

2 个答案:

答案 0 :(得分:1)

我有两种选择:

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

OR

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

答案 1 :(得分: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'];
        }
    }   
}

希望这会对你有所帮助。