如何在PHP中将数组转换为无。 [英] How to convert array to list without .= in PHP?

查看:178
本文介绍了如何在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

Code here

View

Code here

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屋!

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