【发布时间】:2019-01-12 10:23:15
【问题描述】:
我有以下$MessagesArray一维关联内部数组的PHP二维索引数组:
Array
(
[0] => Array
(
[id] => 1
[from] => Person 1
[to] => Person 2
[platform] => Instagram Direct Messaging
[date] => 2016/11/27
[time] => 11:00
[ampm] => AM
[specialcontent] => none
[content] => Hello
)
[1] => Array
(
[id] => 2
[from] => Person 1
[to] => Person 2
[platform] => Instagram Direct Messaging
[date] => 2016/11/27
[time] => 11:00
[ampm] => AM
[specialcontent] => none
[content] => How are you?
)
[2] => Array
(
[id] => 3
[from] => Person 2
[to] => Person 1
[platform] => Instagram Direct Messaging
[date] => 2016/11/27
[time] => 6:00
[ampm] => PM
[specialcontent] => none
[content] => Oh, hey there. I'm fine
)
[3] => Array
(
[id] => 4
[from] => Person 2
[to] => Person 1
[platform] => Instagram Direct Messaging
[date] => 2016/11/27
[time] => 6:01
[ampm] => PM
[specialcontent] => none
[content] => What about you?
)
[4] => Array
(
[id] => 5
[from] => Person 1
[to] => Person 2
[platform] => Instagram Direct Messaging
[date] => 2016/11/28
[time] => 8:00
[ampm] => AM
[specialcontent] => none
[content] => It's been a while.
)
[5] => Array
(
[id] => 6
[from] => Person 1
[to] => Person 2
[platform] => Instagram Direct Messaging
[date] => 2016/11/30
[time] => 2:00
[ampm] => PM
[specialcontent] => none
[content] => Hello?
)
[6] => Array
(
[id] => 7
[from] => Person 2
[to] => Person 1
[platform] => Instagram Direct Messaging
[date] => 2016/12/01
[time] => 3:00
[ampm] => PM
[specialcontent] => none
[content] => Sorry, I'm traveling 'till next year.
)
[7] => Array
(
[id] => 8
[from] => Person 1
[to] => Person 2
[platform] => Instagram Direct Messaging
[date] => 2016/12/05
[time] => 1:00
[ampm] => PM
[specialcontent] => none
[content] => Fine by me.
)
[8] => Array
(
[id] => 9
[from] => Person 2
[to] => Person 1
[platform] => Instagram Direct Messaging
[date] => 2017/01/04
[time] => 3:00
[ampm] => PM
[specialcontent] => none
[content] => I'm back.
)
[9] => Array
(
[id] => 10
[from] => Person 1
[to] => Person 2
[platform] => Instagram Direct Messaging
[date] => 2018/01/15
[time] => 1:00
[ampm] => PM
[specialcontent] => none
[content] => I'm back too, one year later too.
)
)
谁的实际代码是(尽管我实际上是从 XML 文件中的数据库创建了前一个数组):
<?php
$MessagesArray = array(
array(
"id" => "1",
"from" => "Person 1",
"to" => "Person 2",
"platform" => "Instagram Direct Messaging",
"date" => "2016/11/27",
"time" => "12:00",
"ampm" => "AM",
"specialcontent" => "none",
"content" => "Hello"
),
array(
"id" => "2",
"from" => "Person 1",
"to" => "Person 2",
"platform" => "Instagram Direct Messaging",
"date" => "2016/11/27",
"time" => "11:00",
"ampm" => "AM",
"specialcontent" => "none",
"content" => "How are you?"
),
array(
"id" => "3",
"from" => "Person 2",
"to" => "Person 1",
"platform" => "Instagram Direct Messaging",
"date" => "2016/11/27",
"time" => "6:00",
"ampm" => "PM",
"specialcontent" => "none",
"content" => "Oh, hey there. I'm fine"
),
array(
"id" => "4",
"from" => "Person 2",
"to" => "Person 1",
"platform" => "Instagram Direct Messaging",
"date" => "2016/11/27",
"time" => "6:01",
"ampm" => "PM",
"specialcontent" => "none",
"content" => "What about you?"
),
array(
"id" => "5",
"from" => "Person 1",
"to" => "Person 2",
"platform" => "Instagram Direct Messaging",
"date" => "2016/11/28",
"time" => "8:00",
"ampm" => "AM",
"specialcontent" => "none",
"content" => "It's been a while."
),
array(
"id" => "6",
"from" => "Person 1",
"to" => "Person 2",
"platform" => "Instagram Direct Messaging",
"date" => "2016/11/30",
"time" => "2:00",
"ampm" => "PM",
"specialcontent" => "none",
"content" => "Hello?"
),
array(
"id" => "7",
"from" => "Person 2",
"to" => "Person 1",
"platform" => "Instagram Direct Messaging",
"date" => "2016/12/01",
"time" => "3:00",
"ampm" => "PM",
"specialcontent" => "none",
"content" => "Sorry, I'm traveling 'till next year."
),
array(
"id" => "8",
"from" => "Person 1",
"to" => "Person 2",
"platform" => "Instagram Direct Messaging",
"date" => "2016/12/05",
"time" => "1:00",
"ampm" => "PM",
"specialcontent" => "none",
"content" => "Fine by me."
),
array(
"id" => "9",
"from" => "Person 2",
"to" => "Person 1",
"platform" => "Instagram Direct Messaging",
"date" => "2017/01/04",
"time" => "3:00",
"ampm" => "PM",
"specialcontent" => "none",
"content" => "I'm back."
),
array(
"id" => "10",
"from" => "Person 1",
"to" => "Person 2",
"platform" => "Instagram Direct Messaging",
"date" => "2018/01/15",
"time" => "1:00",
"ampm" => "PM",
"specialcontent" => "none",
"content" => "I'm back too, one year later too."
)
);
?>
我想以某种方式有一个自动创建 HTML 的代码,例如:
<div class="year">
2016
<div class="month">
Month 11
<div class="day">
Day 27
</div>
<div class="day">
Day 28
</div>
<div class="day">
Day 30
</div>
<div class="month">
Month 12
<div class="day">
Day 01
</div>
<div class="day">
Day 05
</div>
</div>
</div>
</div>
<div class="year">
2017
<div class="month">
Month 01
<div class="day">
Day 04
</div>
</div>
</div>
<div class="year">
2018
<div class="month">
Month 01
<div class="day">
Day 15
</div>
</div>
</div>
如您所见,这并不是真的那么难,我只是在弄清楚如何使用嵌套的foreach 函数时遇到了问题。
代码应为每个唯一的年份生成一个<div> HTML 元素,然后为该年的每个唯一月份生成其对应的<div> HTML 元素,然后同时为每一天生成其对应的<div> HTML 元素当年那个月的那个月。
我认为我们需要使用嵌套的foreach 函数。假设我们有代码foreach ($MessagesArray as $item) {},那么在函数内部,我们可以分别得到$year = substr($item['date'], 0, 4);、$month = substr($item['date'], 5, 2);和$day = substr($item['date'], 8, 2);的年、月、日。我还认为我们需要有人知道上一次迭代的价值。
【问题讨论】:
-
你可以为你的阵列做一个
var_export()吗?会让你更容易复制/帮助你。 -
此外,您应该能够执行this post 之类的操作来将您的数组转换为对您更有意义的东西。然后遍历你的数组。
-
@ggorlen 我刚刚将它添加到我的帖子中!
-
@FrankerZ 你的意思是将数组的实际代码添加到我的帖子中吗?如果是这样,我只是这样做了 // 对于您链接的帖子,您的意思是我按其 ID 对数组进行排序?
标签: php html multidimensional-array