【问题标题】:compare elements of array and based on comparison retrieve array data比较数组的元素并基于比较检索数组数据
【发布时间】:2012-09-12 18:09:18
【问题描述】:

我有两个数组,第一个和第二个数组中有一个元素是“名称”。现在,如果第一个数组值与第二个匹配,我想从第二个数组中检索值。

第一个数组的代码:

    $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 函数在第二个数组中搜索名称但无法获取整个值来做到这一点。任何建议或帮助将不胜感激。

【问题讨论】:

  • 嘿,你能发一个这两个数组的例子吗?

标签: php arrays multidimensional-array foreach


【解决方案1】:

is_array() 用于一维数组,这不是您的情况,请使用此函数取自 php 文档 cmets 并由我编辑以用于您的示例

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;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多