Foreach循环仅返回最后一个结果

卡尔·哈蒙德

我需要格式化YYYY-MM-DD日期才能像“ 2020年1月12日”那样输出,我有正确输出的日期,但是代码只会输出我想要的五个值之一,我显然错过了一些东西。

我遇到了以下代码仅输出单个结果的问题:

function populate_dropdown($form){

    //Reading posts for "Events" post type;
    $posts = get_posts("post_type=el_events&orderby=date&order=asc&el_eventcategory=flo-talanoa&numberposts=-1");

    //Creating drop down item array.
    $items = array();
    //Adding post dates titles to the items array
    foreach($posts as $post)
        $unformatteddate = $post->startdate;
        $dateTime = DateTime::createFromFormat("Y-m-d", $unformatteddate);
        $dateformatted = $dateTime->format('j F Y');
        $items[] = array(
            "value" =>  $dateformatted . ': ' . $post->location, 
            "text" => $dateformatted . ': ' . $post->location
        );

    //Adding items to field id 1.
    foreach($form["fields"] as &$field)
        if($field["id"] == 1){
            $field["type"] = "select";
            $field["choices"] = $items;
        }

    return $form;
}

如果我更换:

            $unformatteddate = $post->startdate;
            $dateTime = DateTime::createFromFormat("Y-m-d", $unformatteddate);
            $dateformatted = $dateTime->format('j F Y');
            $items[] = array(
                "value" =>  $dateformatted . ': ' . $post->location, 
                "text" => $dateformatted . ': ' . $post->location
            );

带有:

$items[] = array("value" => $post->startdate . ': ' . $post->location, "text" => $post->startdate . ': ' . $post->location);

该代码输出所有五个值(尽管使用YYYY-MM-DD日期格式),但我缺少什么呢?我是PHP的新手。

提前致谢

蓝树

你忘了添加{}在你的foreach循环

foreach($posts as $post){
    $unformatteddate = $post->startdate;
    $dateTime = DateTime::createFromFormat("Y-m-d", $unformatteddate);
    $dateformatted = $dateTime->format('j F Y');
    $items[] = array(
        "value" =>  $dateformatted . ': ' . $post->location, 
        "text" => $dateformatted . ': ' . $post->location
    );
}

//Adding items to field id 1.
foreach($form["fields"] as &$field){
    if($field["id"] == 1){
        $field["type"] = "select";
        $field["choices"] = $items;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Foreach 循环只返回最后一个结果

Foreach循环仅返回第一个结果

For循环返回最后一个结果

在 forEach 循环中,仅显示最后一个值

PHP:foreach内部while循环仅返回一个结果

字典仅返回for循环内的最后一个键值对

Foreach循环仅返回一个字母

为什么for循环仅显示最后一个循环的结果

foreach内部foreach只返回最后一个结果吗?

为什么我的for循环仅显示最后一个结果?

JavaScript执行循环,但仅查看数组中最后一个元素的结果

ASP.NET foreach循环仅显示gridview的最后一个值

foreach循环仅输出数组中的最后一个元素

foreach循环仅输出$ _POST中的最后一个数组值

从嵌套forEach循环的最后一个结果中删除逗号

ruby 模板中的深度层次查找仅返回最后一个结果

使用grep -f,但它仅返回与列表中最后一个模式匹配的结果

动态addeventlistener onclick仅返回数组的最后一个结果

Foreach仅返回一个输出

while 循环中的 Foreach 循环只返回一个结果

AngularJS和JQuery $ .each()函数仅返回最后一个循环值

带for循环的Javascript数组,仅返回最后一个元素

使用jquery创建轮播效果-循环仅返回数组中的最后一个值

在函数中使用for循环,仅返回最后一个值

在for循环中构造时仅返回数组的最后一个值

Mysqli循环,仅返回一个

我怎么知道最后一个异步函数何时在“ for key in ob”循环中返回结果?

PHP Foreach循环仅显示最后结果

Foreach循环仅返回多维数组PHP上的第一个索引