小编Mat*_*ado的帖子

如何删除对象或数组内的递归?

我有这个示例数组。

$data = new stdClass();

$data->foo = [
    'foo1' => &$data,
    'foo2' => 23,
];

$data->bar = new stdClass();

$data->nar->object = [
    'bar1' => &$data->bar,
    'bar2' => 43,
];
Run Code Online (Sandbox Code Playgroud)

我想将其解析为:

$data = new stdClass();

$data->foo = [
    'foo1' => "RECURSION DETECTED",
    'foo2' => 23,
];

$data->bar = new stdClass();

$data->nar->object = [
    'bar1' => "RECURSION DETECTED",
    'bar2' => 43,
];
Run Code Online (Sandbox Code Playgroud)

我需要它,因为json_encode检测到递归时无法对数据进行编码。

我以不同的方式尝试了很多次,做了很多研究,但我没有找到任何真正能帮助我的东西。

我的最后一次尝试是:

function _stack(&$object, &$stack = [], $key = 'original')
{
    if (isObjectOrArray($object)) {
        if (!in_array($object, $stack, …
Run Code Online (Sandbox Code Playgroud)

php recursion parsing json

4
推荐指数
1
解决办法
422
查看次数

标签 统计

json ×1

parsing ×1

php ×1

recursion ×1