如何拔出从嵌套数组数据在PHP? [英] How to pull out data from nested array in PHP?
本文介绍了如何拔出从嵌套数组数据在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; DIV 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屋!
查看全文