![](/img/trans.png)
[英]PHP Notice – yii\base\ErrorException (Array to string conversion) Yii
[英]PHP Notice 'yii\base\ErrorException' with message 'Array to string conversion' - yii2
我的代码:
$transactions->newSet = implode("@s@",$item['pattern']);
来自json的模式对象的数组值被传递:
Array
(
[0] => /="\something\\//
[1] => /something\\?t[p]/
)
错误:
PHP通知“ yii \\ base \\ ErrorException”,消息为“数组到字符串转换”
我正在尝试从json文件导入数据,并最终出现此错误。
提前致谢。
更新:
JSON数据:
[
{
"description": "old_text_id = 2",
"pattern": [
"\/something\/",
"\/something\?t[p]\/"
],
"severity": 0,
"type": 1,
"id": 1,
"name": {
"subFamily": "fam",
"variant": "0"
}
}]
Var_dump结果:
array(2) {
[0]=>
string(30) "/something/"
[1]=>
string(71) "/something\?t[p]/"
}
PHP Notice 'yii\base\ErrorException' with message 'Array to string conversion'
好的,事情是元素本身就是数组本身,因为http://php.net/manual/es/function.implode.php函数期望数组的每个元素都是字符串(或者能够转换为一个)。
当数组的元素之一是数组时,它将失败。 这就是您遇到“数组到字符串”转换错误的时候。
基本上,您不能内爆这样的数组。
在下一个代码中,您可能会在第三和第四行看到问题
$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);
编辑评论和一些疯狂的英语:
问题不在于您导入它的方式,而是要寻找的是“内爆多维数组”。您无法将数组数组打印为这样的字符串。 你可以看这里
要在php中使用implode函数,第一个参数必须为字符串(引用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.