我的代码:
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"
}
}]
答案 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);
编辑评论和一些疯狂的英语:
问题不在于你导入它的方式,你正在寻找的是"内部多维数组"。你不能像这样打印一个数组数组。你可以看看这里
答案 1 :(得分:0)
在php中使用implode函数第一个参数必须是字符串(reference.)