如何拔出从嵌套数组数据在PHP? [英] How to pull out data from nested array in PHP?

查看:94
本文介绍了如何拔出从嵌套数组数据在PHP?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是从<一个跟进的问题href=\"http://stackoverflow.com/questions/2080795/how-to-convert-array-to-list-without-in-php\">here.但问题是不同的。

我有以下的阵列输出。

 数组$事件排列

    [0] =&GT;排列
        (
            [日] =&GT; 17
            [eventContent] =&GT; 17日的事件1
            [EVENTTITLE] =&GT; 17事件1
        )    [1] =&GT;排列
        (
            [日] =&GT; 19
            [eventContent] =&GT; 19日的事件1
            [EVENTTITLE] =&GT; 19事件1
        )    [2] =&GT;排列
        (
            [日] =&GT; 05
            [eventContent] =&GT; 5日的事件1
            [EVENTTITLE] =&GT; 5事件1
        )    [3] =&GT;排列
        (
            [日] =&GT; 17
            [eventContent] =&GT; 17日事件2
            [EVENTTITLE] =&GT; 17日事件2
        )    [4] =&GT;排列
        (
            [日] =&GT; 19
            [eventContent] =&GT; 19日事件2
            [EVENTTITLE] =&GT; 19事件2
        )    [5] =&GT;排列
        (
            [日] =&GT; 19
            [eventContent] =&GT; 19日3时
            [EVENTTITLE] =&GT; 19日事件3
        ))

和我想拉奏的一天。

如果我用这个,它会拿起1,2,3等,但我想17,19等。

 如果(array_key_exists($天,$事件)){...

任意子能告诉我该怎么做吗?

先谢谢了。

- 更新 -

我需要修改原始视图。

 如果(array_key_exists($天,$事件))
{//添加date_has_event类的&lt; TD&GT;并关闭它
回声级=date_has_event&GT; 。'$日;
//添加EVENTTITLE和eventContent包裹在里面&LT;跨度&GT; &安培; &LT;立GT;到&lt; UL&GT;
呼应'&LT; D​​IV CLASS =事件&GT;&LT; UL&GT;';?&GT;
?&LT; PHP的foreach($事件$事件):GT;?
&LT;立GT;
&LT;跨度类=标题&GT;&LT; PHP的echo $事件['EVENTTITLE']; ?&GT;&LT; / SPAN&GT;
&LT;跨度类=降序&GT;&LT; PHP的echo $事件['eventContent']; ?&GT;&LT; / SPAN&GT;
&LT; /李&GT;
&LT; PHP endforeach; ?&GT;&LT; PHP
呼应'&LT; / UL&GT;&LT; / DIV&GT;';
}


解决方案

试试这个:

  $ eventsByDay =阵列();
的foreach($事件$关键=&GT; $事件){
    如果(!使用isset($ eventsByDay [$事件['天'])){
        $ eventsByDay [$事件['天'] =阵列();
    }
    $ eventsByDay [$事件['天'] [] = $事件;
}

$ eventsByDay 现在是一个数组,其中最关键的是白天和值是对应的事件数组。

This is a follow up question from here. But question is different.

I have the following array outputs.

Array $events

Array
(
    [0] => Array
        (
            [day] => 17
            [eventContent] => event 1 of 17th
            [eventTitle] => 17th event 1
        )

    [1] => Array
        (
            [day] => 19
            [eventContent] => event 1 of 19th
            [eventTitle] => 19th event 1
        )

    [2] => Array
        (
            [day] => 05
            [eventContent] => event 1 of 5th
            [eventTitle] => 5th event 1
        )

    [3] => Array
        (
            [day] => 17
            [eventContent] => event 2 of 17th
            [eventTitle] => 17th event 2
        )

    [4] => Array
        (
            [day] => 19
            [eventContent] => event 2 of 19th
            [eventTitle] => 19th event 2
        )

    [5] => Array
        (
            [day] => 19
            [eventContent] => event 3 of 19th
            [eventTitle] => 19th event 3
        )

)

And I want to pull outs day.

If I use this, it will pick up 1,2,3 etc. But I want 17, 19 etc.

if(array_key_exists($day,$events)){...

Could anyon tell me how to do it please?

Thanks in advance.

--UPDATE--

Original view which I need to modify.

if(array_key_exists($day,$events))
{

//adding the date_has_event class to the <td> and close it
echo ' class="date_has_event"> '.$day;
//adding the eventTitle and eventContent wrapped inside <span> & <li> to <ul>
echo '<div class="events"><ul>';?>
<?php foreach ($events as $event) : ?>
<li>
<span class="title"><?php echo $event['eventTitle']; ?></span>
<span class="desc"><?php echo $event['eventContent']; ?></span>
</li>
<?php endforeach; ?>

<?php                           
echo '</ul></div>';
}

解决方案

Try this:

$eventsByDay = array();
foreach ($events as $key => $event) {
    if (!isset($eventsByDay[$event['day']])) {
        $eventsByDay[$event['day']] = array();
    }
    $eventsByDay[$event['day']][] = $event;
}

$eventsByDay is now an array where the key is the day and the value is an array of the corresponding events.

这篇关于如何拔出从嵌套数组数据在PHP?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆