如何在PHP中将数组转换为无。 [英] How to convert array to list without .= in PHP?
问题描述
我有以下数组输出。
数组
(
[day] => 17
[eventContent] =>事件1 of 17th
[eventTitle] =>第17个事件1
)
数组
b [day] => 19
[eventContent] =>第1个第19个
[eventTitle] =>第19个事件1
)
b $ b(
[day] => 05
[eventContent] =>第5个活动第1个
[eventTitle] =>第5个活动1
)
Array
(
[day] => 17
[eventContent] =>第17项的事件2
[eventTitle] =>第17项事件2
)
Array
(
[day] => 19
[eventContent] =>事件2 of 19th
[eventTitle] =>第19个事件2
)
数组
(
[day] => 19
[eventContent] =>
[eventTitle] =>第19个事件3
)
...
...
例如第19个
< li>
< span class =title>第19个活动1< / span>
< span class =desc>第19个活动1< / span>
< / li>
< li>
< span class =title>第19个活动2< / span>
< span class =desc>第19个活动2< / span>
< / li>
< li>
< span class =title>第19个活动3< / span>
< span class =desc>第19个活动3< / span>
< / li>
我试过下面的。它在PHP中工作正常,但不是在Codeigniter。所以我希望有人能告诉我另一种方法。=
提前感谢。
$ events [intval($ row_event-> day)]。='< li>< span class =title>'
.stripslashes($ row_event- > eventTitle)。
'< / span>< span class =desc>'。stripslashes($ row_event-> eventContent)。
'< / span>< / li>';
以下是模型的详细信息。
$ events = array();
//查询数据库中每月第一个日期和月份最后一个日期之间的事件
// $ result = mysql_query(SELECT DATE_FORMAT(eventDate,'%d' )AS day,eventContent,eventTitle FROM eventcal WHERE eventDate BETWEEN'$ current_year / $ current_month / 01'AND'$ current_year / $ current_month / $ total_days_of_current_month');
$ query = $ this-> db-> query(SELECT DATE_FORMAT(eventDate,'%d')AS day,eventContent,eventTitle FROM eventcal WHERE eventDate BETWEEN'$ current_year / $ current_month / 01'AND'$ current_year / $ current_month / $ total_days_of_current_month');
foreach($ query-> result_array()as $ row_event)
{
$ events [intval($ row_event ['day'])]。 li>< span class =title>'
.stripslashes($ row_event ['eventTitle'])'< / span>< span class =desc>'
.stripslashes($ row_event ['eventContent'])。< / span>< / li>';
...
...
- UPDATE - p>
控制器
查看
错误
遇到PHP错误
严重性:注意
消息:未定义偏移量:17
文件名:models / mcalendar_one。 php
行号:38
数组
(
[day] => 17
[eventContent] =>事件1 of 17th
[eventTitle] =>第17个事件1
)
遇到PHP错误
严重性:Notice
消息:Undefined offset:19
文件名:models / mcalendar_one.php
行号:38
数组
b $ b [day] => 19
[eventContent] =>第1个第19个
[eventTitle] =>第19个事件1
)
...
...
位。首先,看看CI的数据库类中的Active Record,它会使你的数据库调用更容易100%。
为什么不能将数组传回视图并注入
<? php foreach($ row_event as $ event):?>
< li>
< span class =title><?php echo $ event-> eventTitle; ?>< / span>
< span class =desc><?php echo $ event-> eventContent; ?>< / span>
< / li>
<?php endforeach; >
这将循环浏览您的活动详细资料数组并列出。
I have the following array outputs.
Array
(
[day] => 17
[eventContent] => event 1 of 17th
[eventTitle] => 17th event 1
)
Array
(
[day] => 19
[eventContent] => event 1 of 19th
[eventTitle] => 19th event 1
)
Array
(
[day] => 05
[eventContent] => event 1 of 5th
[eventTitle] => 5th event 1
)
Array
(
[day] => 17
[eventContent] => event 2 of 17th
[eventTitle] => 17th event 2
)
Array
(
[day] => 19
[eventContent] => event 2 of 19th
[eventTitle] => 19th event 2
)
Array
(
[day] => 19
[eventContent] => event 3 of 19th
[eventTitle] => 19th event 3
)
...
...
Now I want to make it like the followings.
For example for 19th
<li>
<span class="title">19th event 1</span>
<span class="desc">event 1 of 19th</span>
</li>
<li>
<span class="title">19th event 2</span>
<span class="desc">event 2 of 19th</span>
</li>
<li>
<span class="title">19th event 3</span>
<span class="desc">event 3 of 19th</span>
</li>
I tried the following. It works fine in PHP but not in Codeigniter. So I am hoping someone can tell me another way to do with out .=
Thanks in advance.
$events[intval($row_event->day)] .= '<li><span class="title">'
.stripslashes($row_event->eventTitle).
'</span><span class="desc">'.stripslashes($row_event->eventContent).
'</span></li>';
And the following is the details of the model.
$events = array();
//query the database for events between the first date of the month and the last of date of month
// $result = mysql_query("SELECT DATE_FORMAT(eventDate,'%d') AS day,eventContent,eventTitle FROM eventcal WHERE eventDate BETWEEN '$current_year/$current_month/01' AND '$current_year/$current_month/$total_days_of_current_month'");
$query = $this->db->query("SELECT DATE_FORMAT(eventDate,'%d') AS day,eventContent,eventTitle FROM eventcal WHERE eventDate BETWEEN '$current_year/$current_month/01' AND '$current_year/$current_month/$total_days_of_current_month'");
foreach ($query->result_array() as $row_event)
{
$events[intval($row_event['day'])] .= '<li><span class="title">'
.stripslashes($row_event['eventTitle']).'</span><span class="desc">'
.stripslashes($row_event['eventContent']).'</span></li>';
...
...
--UPDATE--
Controller
View
Errors
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 17
Filename: models/mcalendar_one.php
Line Number: 38
Array
(
[day] => 17
[eventContent] => event 1 of 17th
[eventTitle] => 17th event 1
)
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 19
Filename: models/mcalendar_one.php
Line Number: 38
Array
(
[day] => 19
[eventContent] => event 1 of 19th
[eventTitle] => 19th event 1
)
...
...
This can simplified quite a bit. First, look at Active Record in CI's database class, it will make your DB calls 100% easier.
Why can't you pass the array back to the view and inject it there?
Your view may look like
<?php foreach ($row_event as $event) : ?>
<li>
<span class="title"><?php echo $event->eventTitle; ?></span>
<span class="desc"><?php echo $event->eventContent; ?></span>
</li>
<?php endforeach; ?>
That will loop through your array of event details and make your list.
这篇关于如何在PHP中将数组转换为无。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!