PHP注意'yii \ base \ ErrorException',消息'Array to string conversion' - yii2

时间:2018-02-08 12:35:30

标签: php yii yii2 yii2-advanced-app yii2-basic-app

我的代码:

App\Posts::where('display',1)->first()->contents

数组json正在传递的模式对象的值:

$transactions->newSet = implode("@s@",$item['pattern']);

错误:

  

PHP注意'yii \ base \ ErrorException',消息'Array to string   转化

我正在尝试从json文件导入数据并最终导致此错误。

先谢谢。

更新

JSON DATA:

Array
(
    [0] => /="\something\\//
    [1] => /something\\?t[p]/
)

Var_dump结果:

[
  {
    "description": "old_text_id = 2",
    "pattern": [
      "\/something\/",
      "\/something\?t[p]\/"
    ],
    "severity": 0,
    "type": 1,
    "id": 1,
    "name": {
      "subFamily": "fam",
      "variant": "0"
    }
  }]

2 个答案:

答案 0 :(得分:0)

好的,其中一个元素就是一个数组本身,因为http://php.net/manual/es/function.implode.php函数需要数组的每个元素都是一个字符串(或者能够转换成一个字符串)。

当数组的某个元素是数组时,它会失败。当你有一个' Array to String'转换错误。

基本上你不能破坏这样的数组阵列。

在下一个代码中,您可能会在第3行和第4行看到问题

  $array = [];
  $array[0] = "/something/";
  $array[1][1] = "/something/";
  $array[1][2] = "/something2/";

  $aux = implode("@s@",$array);

  var_dump ($aux);

这是工作:

  $array = [];
  $array[0] = "/something/";
  $array[1] = "/something/";

  $aux = implode("@s@",$array);

  var_dump ($aux);

编辑评论和一些疯狂的英语:

问题不在于你导入它的方式,你正在寻找的是"内部多维数组"。你不能像这样打印一个数组数组。你可以看看这里

Implode and Explode Multi dimensional arrays

答案 1 :(得分:0)

在php中使用implode函数第一个参数必须是字符串(reference.)