为了账号安全,请及时绑定邮箱和手机立即绑定

重新索引数组值

重新索引数组值

PHP
梦里花落0921 2021-06-12 14:04:15
我想在 php 示例中重新索引我的数组中的键和值,如果删除数据:“2”,数据 3 将重新索引为 2 并且里面的值array 3 {sequence : 3 "ssdummy tossssdo 3"}将更改为{sequence : 2 "ssdummy tossssdo 3"}{"sequence": 2,"data": {"1": {"sequence": "1", "todo": "dummy todo"},"2": {"sequence": "2", "todo": "dummy todo 2"},"3": {"sequence": "3", "todo": "ssdummy tossssdo 3"},}}
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

首先,您可以将值转换为数组,因为输入是 json。然后解析数组,删除所需的值。解析数组后,您可以将其转换回 json(如果需要)。下一个脚本删除$valueToRemove变量中指示的值。


<?php

$jsonValues = '{

"sequence": 2,

"data": {

    "1": {"sequence": "1", "todo": "dummy todo"},

    "2": {"sequence": "2", "todo": "dummy todo 2"},

    "3": {"sequence": "3", "todo": "ssdummy tossssdo 3"}

    }

}';

$valueToRemove = 2;

$arrayValues = json_decode($jsonValues, true);

$oldData = $arrayValues['data'];

$newData = array();

$counter = 0;

foreach ($oldData as $oldIndex => $oldValue) {

    if ($valueToRemove != $oldIndex) {

        $counter++;

        $newData[$counter] = array(

                'sequence' => $counter,

                'todo' => $oldValue['todo']

        );

    }

}

$arrayValues['data'] = $newData;

$jsonValues = json_encode($arrayValues);

var_dump($jsonValues);

?>

我从脚本中得到以下输出:


{"sequence":2,"data":{"1":{"sequence":1,"todo":"dummy todo"},"2":{"sequence":2,"todo":"ssdummy tossssdo 3"}}}



查看完整回答
反对 回复 2021-06-13
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信