首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel输入::old是作为字符串的数组

问Laravel输入::old是作为字符串的数组
EN

Stack Overflow用户
提问于 2015-07-23 01:59:25
回答 3查看 3.2K关注 0票数 0

以我的形式,im输出一些json或来自输入的数组的一串数据::old(‘tag’)我遇到的问题是能够测试它并查看它是否是json,如果它是json循环,并将tag属性放入数组,然后将数组内爆并输出到输入字段中。

代码语言:javascript
复制
[{"id":112,"tag":"corrupti","tagFriendly":"corrupti","created_at":"2015-07-20 00:05:28","updated_at":"2015-07-20 00:05:28","pivot":{"question_id":60,"tag_id":112,"created_at":"2015-07-20 00:05:28","updated_at":"2015-07-20 00:05:28"}},{"id":9,"tag":"placeat","tagFriendly":"placeat","created_at":"2015-07-20 00:05:23","updated_at":"2015-07-20 00:05:23","pivot":{"question_id":60,"tag_id":9,"created_at":"2015-07-20 00:05:28","updated_at":"2015-07-20 00:05:28"}}]

所以我的输出应该如下所示

代码语言:javascript
复制
'corrupti, placeat, etc...'

有人能帮我按照我刚才概述的步骤得到预期的结果吗?

这段代码不起作用,但这是我想要实现的。is_array总是错误的

代码语言:javascript
复制
<?php
    $tags = Input::old('tags');
    if(is_array($tags)) {
        foreach ($tags as $tag) {
            $tags[] = $tag->tag;
        }
        $tags = implode(', ', $tags);   
    }                       
?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-23 04:17:31

这就是你要的。

代码语言:javascript
复制
$tags = json_decode(Input::old('tags'), true); // decode json input as an array

if (is_array($tags)) {
    foreach ($tags as $key=>$value) {
        $tags[$key] = $value['tag'];
    }
    $tags = implode(', ', $tags);
    echo $tags;
}
票数 3
EN

Stack Overflow用户

发布于 2015-07-23 02:08:19

可以使用array_map从对象中提取标记属性。

代码语言:javascript
复制
<?php
$jsonObject = json_decode(Input::old('tags'));
if(is_array($jsonObject)) {
    $onlyTags = array_map(function($item) { return $item->tag; },$jsonObject);
    print implode(",", $onlyTags);
}
票数 1
EN

Stack Overflow用户

发布于 2015-07-23 02:12:25

尝试将true添加到json_decode中。

代码语言:javascript
复制
json_decode($tags, true);

根据应该返回关联数组的文档。http://php.net/manual/en/function.json-decode.php

is_array可能无法处理具有键/值对的关联数组。尝试用以下函数替换is_array:

代码语言:javascript
复制
function is_associate_array($array)
{
    return $array === array_values($array);
}

所以:

代码语言:javascript
复制
if(is_associate_array(json_decode($tags, true))) {

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31576968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档