[英]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.