RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 914535
Accepted
Denis640Kb
Denis640Kb
Asked:2020-12-02 22:43:03 +0000 UTC2020-12-02 22:43:03 +0000 UTC 2020-12-02 22:43:03 +0000 UTC

通过键查找值并更改数组中的值

  • 772


有一个像这样的数组

{
        "id": 2,
        "firstName": "Тест",
        "lastName": "Тест",
        "patronymic": "Тест",
        "sexId": 101252,
        "mobilePhone": "71111111111",
        "registrationNumber": {
            "id": 6,
            "seria": "",
            "no": "",
            "extraNumber": "",
            "issueDate": null,
            "closeDate": null,
            "manager": "",
            "subdivisionCode": "",
            "complementaryDocTypeId": null
        },
        "personRelatives": [
            {
                "id": 4,
                "lastName": "dsv",
                "firstName": "sd",
                "patronymic": "",
                "resident": false,
                "passport": {
                    "id": 43,
                    "seria": "",
                    "no": "",
                    "extraNumber": null,
                    "issueDate": null,
                    "closeDate": null,
                    "manager": "",
                    "subdivisionCode": "",
                    "complementaryDocTypeId": null
                },
                "rnn": "",
                "telephone": "",
                "email": "",
                "workPlace": "",
                "address": "",
                "birthDate": null,
                "collateralRelId": 102147,
                "verified": null,
                "comments": ""
            }
        ],
        "clientRiskStatus": [
            {
                "id": 5,
                "insertDate": 1539244552517,
                "userId": 1027,
                "comments": "3211",
                "valueId": 102184
            },
            {
                "id": 8,
                "insertDate": 1540396776913,
                "userId": 1027,
                "comments": "321",
                "valueId": 102184
            },
            {
                "id": 9,
                "insertDate": 1540397890848,
                "userId": 1027,
                "comments": "123",
                "valueId": 102184
            },
            {
                "id": 10,
                "insertDate": 1540398177463,
                "userId": 1027,
                "comments": "вшозавц",
                "valueId": 102184
            },
            {
                "id": 11,
                "insertDate": 1540398590878,
                "userId": 1027,
                "comments": "авлоавыолз",
                "valueId": 102184
            },
            {
                "id": 2,
                "insertDate": 1539067291379,
                "userId": 1027,
                "comments": "Новый клиент",
                "valueId": 102185
            }
        ],
        "extraFields": [
            {
                "id": 178,
                "key": "placeOfEducation",
                "value": "kzt1"
            },
            {
                "id": 179,
                "key": "work1",
                "value": "workk1"
            },
            {
                "id": 180,
                "key": "work2",
                "value": null
            },
            {
                "id": 181,
                "key": "work3",
                "value": null
            },
            {
                "id": 182,
                "key": "placeOfEducation1",
                "value": "kzt1"
            },
            {
                "id": 183,
                "key": "work6",
                "value": ""
            }]}

extraFields 的数量可以是任何值。如何通过key找到价值并改变它?

试过了

$NEW = null;
$needle1 = "NEW";
foreach($response1['data']['extraFields'] as $t){
    if($t['key'] === $needle1){
       $t['value'] = "333";
        $NEW = $t['value'];
        break;
    }
}

或者

foreach($response1['data']['extraFields'] as $key => $val){
    $response1[$key]['work1'] = "010101";
}

但它仍然没有改变价值。告诉我我做错了什么?

php
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Евгений Николаев
    2020-12-02T23:00:48Z2020-12-02T23:00:48Z
    $json = '{
            "id": 2,
            "firstName": "Тест",
            "lastName": "Тест",
            "patronymic": "Тест",
            "sexId": 101252,
            "mobilePhone": "71111111111",
            "registrationNumber": {
                "id": 6,
                "seria": "",
                "no": "",
                "extraNumber": "",
                "issueDate": null,
                "closeDate": null,
                "manager": "",
                "subdivisionCode": "",
                "complementaryDocTypeId": null
            },
            "personRelatives": [
                {
                    "id": 4,
                    "lastName": "dsv",
                    "firstName": "sd",
                    "patronymic": "",
                    "resident": false,
                    "passport": {
                        "id": 43,
                        "seria": "",
                        "no": "",
                        "extraNumber": null,
                        "issueDate": null,
                        "closeDate": null,
                        "manager": "",
                        "subdivisionCode": "",
                        "complementaryDocTypeId": null
                    },
                    "rnn": "",
                    "telephone": "",
                    "email": "",
                    "workPlace": "",
                    "address": "",
                    "birthDate": null,
                    "collateralRelId": 102147,
                    "verified": null,
                    "comments": ""
                }
            ],
            "clientRiskStatus": [
                {
                    "id": 5,
                    "insertDate": 1539244552517,
                    "userId": 1027,
                    "comments": "3211",
                    "valueId": 102184
                },
                {
                    "id": 8,
                    "insertDate": 1540396776913,
                    "userId": 1027,
                    "comments": "321",
                    "valueId": 102184
                },
                {
                    "id": 9,
                    "insertDate": 1540397890848,
                    "userId": 1027,
                    "comments": "123",
                    "valueId": 102184
                },
                {
                    "id": 10,
                    "insertDate": 1540398177463,
                    "userId": 1027,
                    "comments": "вшозавц",
                    "valueId": 102184
                },
                {
                    "id": 11,
                    "insertDate": 1540398590878,
                    "userId": 1027,
                    "comments": "авлоавыолз",
                    "valueId": 102184
                },
                {
                    "id": 2,
                    "insertDate": 1539067291379,
                    "userId": 1027,
                    "comments": "Новый клиент",
                    "valueId": 102185
                }
            ],
            "extraFields": [
                {
                    "id": 178,
                    "key": "placeOfEducation",
                    "value": "kzt1"
                },
                {
                    "id": 179,
                    "key": "work1",
                    "value": "workk1"
                },
                {
                    "id": 180,
                    "key": "work2",
                    "value": null
                },
                {
                    "id": 181,
                    "key": "work3",
                    "value": null
                },
                {
                    "id": 182,
                    "key": "placeOfEducation1",
                    "value": "kzt1"
                },
                {
                    "id": 183,
                    "key": "work6",
                    "value": ""
                }]}';
    
    $json = json_decode($json, true);
    

    var_dump($json['extraFields']);
    
    foreach($json['extraFields'] as $key => $val){
        if($val['key'] == "work1"){ // находим нужный ключ
            $json['extraFields'][$key]['value'] = 'new your value'; // меняем значение на нужное в исходном массиве
        }
    }
    
    var_dump($json['extraFields']);
    

    结果

     //было
    [1]=>
      array(3) {
        ["id"]=>
        int(179)
        ["key"]=>
        string(5) "work1"
        ["value"]=>
        string(6) "workk1"
      }
     // стало
    [1]=>
      array(3) {
        ["id"]=>
        int(179)
        ["key"]=>
        string(5) "work1"
        ["value"]=>
        string(14) "new your value"
      }
    
    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5