比较数组的元素并基于比较检索数组数据

时间:2012-09-12 18:09:19

标签: php arrays multidimensional-array foreach

我有两个数组,在第一个和第二个数组中有一个'name'共同的元素。现在,我想从第二个数组中检索第一个数组值与第二个数组匹配的值。

第一个数组的代码:

    $rs = array();
    foreach ( $ex_array as $data ) {

                $rs[] = array( 'name' => $data['name'] );

            }

第二阵列:

$entries_data = array();
foreach ( $array as $entry ) {

            $name = $entry['name']['value'];
            $email = $entry['email']['value'];

            $entries_data[] = array(
                'name' => $name,
                'email' => $email
            );
        }

问题是,第一个数组中只有多个名称,然后我必须将第一个数组名称与第二个数组进行比较,如果匹配,则从第二个数组中检索整个数据以获取特定名称。我试图通过对第二个数组中的搜索名称使用in_array函数来执行此操作,但无法获取整个值。任何建议或帮助都会对我感激不尽。

1 个答案:

答案 0 :(得分:1)

is_array()用于1d数组,不是这样的情况下使用这个函数取自php文档注释并由我编辑为你的例子工作

function in_multiarray($elem, $array)
    {
        $top = sizeof($array) - 1;
        $bottom = 0;
        while($bottom <= $top)
        {
            if($array[$bottom]['name'] == $elem)
                return true;
            else 
                if(is_array($array[$bottom]['name']))
                    if(in_multiarray($elem, ($array[$bottom]['name'])))
                        return true;

            $bottom++;
        }        
        return false;
    }