简体   繁体   English

在 php 数组中查找键并替换值/如何

[英]find key and replace value in php array / how to

I would like to search the below array for where app_setting_key = dh_phone_number and replace it with +81-80-5555-5555.我想在下面的数组中搜索 app_setting_key = dh_phone_number 并将其替换为 +81-80-5555-5555。 Is a loop the best way to handle or is there a php method that can search it already?循环是最好的处理方式,还是有可以搜索它的 php 方法? I cannot seem to find an appropriate method.我似乎找不到合适的方法。

Array
(
[0] => Array
    (
        [app_setting_key] => dh_company_name
        [app_setting_value] => ABCsss
    )

[1] => Array
    (
        [app_setting_key] => dh_address_one
        [app_setting_value] => 123 A big streetsss
    )

[2] => Array
    (
        [app_setting_key] => dh_address_two
        [app_setting_value] => a big city
    )

[3] => Array
    (
        [app_setting_key] => dh_address_country
        [app_setting_value] => JP
    )

[4] => Array
    (
        [app_setting_key] => dh_email
        [app_setting_value] => example@example.com
    )

[5] => Array
    (
        [app_setting_key] => dh_phone_country
        [app_setting_value] => JP
    )

[6] => Array
    (
        [app_setting_key] => dh_phone_number
        [app_setting_value] => 80-3245-6000
    )


)

A simple loop would work, but actually it is not even required:一个简单的循环可以工作,但实际上它甚至不是必需的:

<?php
$data = [
    [ 'app_setting_key' => "dh_company_name", '[app_setting_value' => "ABCsss" ],
    [ 'app_setting_key' => "dh_address_one", 'app_setting_value' => "123 A big streetsss" ],
    [ 'app_setting_key' => "dh_address_two", 'app_setting_value' => "a big city" ],
    [ 'app_setting_key' => "dh_address_country", 'app_setting_value' => "JP" ],
    [ 'app_setting_key' => "dh_email", 'app_setting_value' => "example@example.com" ],
    [ 'app_setting_key' => "dh_phone_country", 'app_setting_value' => "JP" ],
    [ 'app_setting_key' => "dh_phone_number", 'app_setting_value' => "80-3245-6000" ]
];

$key = array_search("dh_phone_number", array_column($data, 'app_setting_key'));
$data[$key]['app_setting_value'] = "+81-80-5555-5555";

var_dump($data);

The output obviously is: output 显然是:

array(7) {
  [0]=>
  array(2) {
    ["app_setting_key"]=>
    string(15) "dh_company_name"
    ["[app_setting_value"]=>
    string(6) "ABCsss"
  }
  [1]=>
  array(2) {
    ["app_setting_key"]=>
    string(14) "dh_address_one"
    ["app_setting_value"]=>
    string(19) "123 A big streetsss"
  }
  [2]=>
  array(2) {
    ["app_setting_key"]=>
    string(14) "dh_address_two"
    ["app_setting_value"]=>
    string(10) "a big city"
  }
  [3]=>
  array(2) {
    ["app_setting_key"]=>
    string(18) "dh_address_country"
    ["app_setting_value"]=>
    string(2) "JP"
  }
  [4]=>
  array(2) {
    ["app_setting_key"]=>
    string(8) "dh_email"
    ["app_setting_value"]=>
    string(19) "example@example.com"
  }
  [5]=>
  array(2) {
    ["app_setting_key"]=>
    string(16) "dh_phone_country"
    ["app_setting_value"]=>
    string(2) "JP"
  }
  [6]=>
  array(2) {
    ["app_setting_key"]=>
    string(15) "dh_phone_number"
    ["app_setting_value"]=>
    string(16) "+81-80-5555-5555"
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM