Php 我能';t将Json转换为字符串[OctoberCms]

Php 我能';t将Json转换为字符串[OctoberCms],php,json,laravel,octobercms,Php,Json,Laravel,Octobercms,我试图从输入中获取值,该输入允许用户创建他想要的任意多个字段这就是我在字段中创建该字段的方式。yaml: str_og_fb_admins: label: Facebook admins comment: Insert here the admins names span: left tab: Facebook type: repeater form: fields:

我试图从输入中获取值,该输入允许用户创建他想要的任意多个字段这就是我在字段中创建该字段的方式。yaml:

str_og_fb_admins:
        label: Facebook admins
        comment: Insert here the admins names
        span: left
        tab: Facebook
        type: repeater
        form:
          fields:
            str_og_fb_admins:
              label: Facebook admins
              type: text
然后在我的组件上,我这样称呼它:

$settings = Settings::instance();
$this->ogFbAdmins = $settings->str_og_fb_admins;
但是现在我想从每个单数输入中获取单个值,我不知道如何获取,我尝试使用
json_decode()函数,但它返回一个错误

如果我使用
echo json\u encode($this->ogFbAdmins)它返回

{"1":{"str_og_fb_admins":"admin1"},"2":{"str_og_fb_admins":"admin2"}}
但我想让它像这样返回:

admin1
admin2
我怎样才能以第二种方式返回

ps:当我使用
json\u decode($this->ogFbadmins)时返回的错误如下所示:


“json_decode()期望参数1是字符串,数组给定”

我认为
$this->ogFbAdmins
是一个数组,所以您根本不需要任何json转换

尝试在纯PHP中将其视为数组

$settings = Settings::instance();
$this->ogFbAdmins = $settings->str_og_fb_admins;
foreach ($this->ogFbAdmins as $adm) {
    echo $adm['str_og_fb_admins'];
}
现在,内部结构可能是一个对象,因此您可能需要执行以下操作

$settings = Settings::instance();
$this->ogFbAdmins = $settings->str_og_fb_admins;
foreach ($this->ogFbAdmins as $adm) {
    echo $adm->str_og_fb_admins;
}
这应该起作用:

PHP

$ogFbAdmins = json_decode(json_encode($this->ogFbAdmins), true);
foreach($ogFbAdmins as $key => $value) {
  echo $value['str_og_fb_admins'] . "\n";
}  

为什么您觉得需要将PHP数据结构转换为JSON字符串,以便将其转换回PHP数据结构,并使用普通PHP进行处理。这些都不是必需的!