首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多维数组中查找特定的键和返回值

在多维数组中查找特定的键和返回值
EN

Stack Overflow用户
提问于 2013-08-08 22:46:06
回答 1查看 50关注 0票数 0

考虑下面的数组:

代码语言:javascript
复制
//$allmembers
Array
(
    [0] => Array
        (
            [id] => 7
            [name] => John Smith
        )
    [1] => Array
        (
            [id] => 8
            [name] => John Skeet
        )
    [2] => Array
        (
            [id] => 9
            [name] => Chuck Norris
        )
    [3] => Array
        (
            [id] => 10
            [name] => Bruce Lee
        )
)

我还有一个这样的数组:

代码语言:javascript
复制
//$schedules
Array
(
    [0] => Array
        (
            [id] => 24
            [title] => DAMN DAMN DAMN!
            [description] => 
            [room] => 5022
            [start] => 1362783300
            [end] => 1362783300
            [participants] => 7,8
            [members] => Array
                (
                )
        )
    [1] => Array
        (
            [id] => 22
            [title] => blah blah
            [description] => 
            [room] => 5022
            [start] => 1365024780
            [end] => 1365026280
            [participants] => 9,10
            [members] => Array
                (
                )
        )
)

因此,我必须读取第二个数组中的参与者键,然后从第一个数组中找到名称,并将其添加到第二个数组的成员中。

我正在尝试下面的代码,但到目前为止还没有取得任何成功:

代码语言:javascript
复制
$allmembers = $_DB->Query("SELECT id,name FROM members");

for($i = 0; $i < count($schedules); $i++)
{
    $schedules[$i]["members"] = array() ;
    $mems = array();        

    $mems = explode(',', $schedules[$i]["participants"]);                                               

    for($j = 0; $j < count($mems); $j++)
    {
        //How to search the first array?  
    }                          
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-08 22:52:49

考虑到这两个数组以$schedules$allmembers的形式存在于此块之上,下面的内容应该可以工作。

代码语言:javascript
复制
foreach($schedules as &$event)
{
    $participants = array_flip(explode(',', $event['participants']));

    $addThese = array();
    foreach($allmembers as $member)
    {
        if (isset($participants[$member['id']]))
            $addThese[] = $member;
    }

    $event['participants'] = $addThese;
} unset($event);

print_r($schedules);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18137505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档