【问题标题】:Illegal string offset 'name' php - Many Array into 1 Array非法字符串偏移 'name' php - 许多数组为 1 个数组
【发布时间】:2018-05-25 18:08:16
【问题描述】:

在变量类别的帮助下,我有了这个数组,其中所有数组都没有键/默认索引,因为当我在 foreach 中将 $categories as $category 和 echo $category['name'] 它时提供非法的刺痛服务。

使用 laravel 刀片

对此有什么可能的解决方案,或者我应该先验证数组吗?

【问题讨论】:

  • 类别可能是对象。尝试改用$category->name
  • 不,他们不是,我已经尝试过了,然后错误是试图获取非对象的属性。

标签: php arrays laravel


【解决方案1】:

以上代码为JSON格式,先转为数组

例如

 $ex = {
         'result':"success",
         'categories':[{
              //your rest of the code
          }]
    }
    $data = json_decode($ex, TRUE);
//next use for each
     foreach($data as $key => $value)
     {
      //rest of your logic
     }

【讨论】:

  • "json_decode() 期望参数 1 是字符串,给定数组"
【解决方案2】:

我认为这是您的情况,在我看来,您使用了错误的变量进行解码,让我在这里以您的图像为例。

    <?php

      $ex = [
     'result' => 'success',
       'categories' => [
      [
        'id'=>1,
        'name'=>'cat1',
    ],
    [
        'id'=>2, 
        'name'=>'cat21',
    ],
    [
        'id'=>3,
        'name'=>'cat31',
    ],
  ]
];
echo "<pre>";
$res = json_encode($ex);
print_r(json_decode($res));

在此示例中,我只是向您展示了我已经轻松完成了 json_encode 和 json_decode 没有任何问题,并且 JSON 的输出与您的示例图像相同。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多