我将其放在最前面,因为我正在缩小问题的范围。
我将这个字符串嵌套在一个更大的数组中,并结合了WP短代码的所有属性。问题出在方括号之内。
{“key”:”post_type”,”value”:[“news”,”agenda"]}
我最好的问题是我需要逃脱方括号或搜索两侧的替换,并使用(squareBracketOpen)
之类的占位符。
或者还有另一种方法来序列化/反序列化数组?
问题出在方括号内。
我正在使用React和PHP,并且想在Wordpress插件之上添加一些内容。这使用了React,我一点都不熟悉:)
现在,我对反应的知识为零,但是我正在逐步使事情变得可行。虽然我不知道该怎么解决,但有一件事。我将从问题开始:
如何在React中序列化多维数组并在PHP中反序列化? 如果在任何情况下我都想翻译我的问题,让我陈述一下我的目标: 我在React中有一个多维数组,我想将其传递给PHP并将其作为多维数组重用。
这将是数组:
Array {
[key] => “post_type”,
[value] => Array {
[0] => “news”,
[1] => “agenda”
}
}
作为React我的测试
console.log(JSON.stringify(post_type));
// expected return {“key”:”post_type”,”value”:[“news”,”agenda"]}
-edit--我注意到它添加了[ ]
括号作为多维。那不对吧? -结束编辑-
据我所知,对吧?
现在在PHP中,我尝试使用以下方法将其反序列化:
var_dump( unserialize ($postType ) );
// result: bool(false)
很明显,我做错了什么。 :) 谁会知道如何在React中正确序列化多维数组并将其在PHP中反序列化为数组?
答案 0 :(得分:2)
您需要执行json_decode($post_type, true)
才能将其转换为多维数组。
请注意,第二个参数true
将其转换为关联数组。
因此,从本质上讲,您将先进行JSON.stringify
然后json_decode()
才能在php中工作
答案 1 :(得分:0)
好的,最后。我最终要做的是在js / react方面。
JS /反应
let post_type_encoded = encodeURIComponent( JSON.stringify( post_type ) )
PHP
$postType = json_decode ( urldecode( $postTypeEncoded ) );