【问题标题】:Update associative array through a function通过函数更新关联数组
【发布时间】:2020-03-21 23:29:32
【问题描述】:

我需要通过函数更新关联数组的特定键。 有可能吗?

重要提示,$PATH_TAB = &$TAB_cars['car_1']['blue']; $TAB_cars['car_1']['blue'] 可以不同:$TAB_cars['car_1']['type']['light'] 等。

$TAB_cars = [
        'car_1' => [
            'red' => '',
            'blue' => '',
            'type' => [
                   'light' => '',
                   'big' => ''
                      ]
                    ],
        'car_2' => [
            'green' => '',
            'brown' => ''
            ]
        ];


function UpdateArray($PATH_TAB_2) {
    $PATH_TAB_2 = 'TEST 2';
}


$PATH_TAB_1 = &$TAB_cars['car_1']['blue'];
UpdateArray($PATH_TAB_1);

print_r($TAB_cars);

【问题讨论】:

  • 你需要在你的函数中 return 或者让它通过引用传递
  • 好吧,尝试做类似的事情:$newArray = UpdateArray($PATH_TAB);function UpdateArray($array, $path_tab) { /* update the $path_tab in your $array */ return $array; }
  • 这句话我看不懂IMPORTANT, in $PATH_TAB = &$TAB_cars['car_1']['blue']; $TAB_cars['car_1']['blue'] 可以不同:是否“更深”。
  • @vivek_23 我刚刚更新了这句话。现在清楚了吗? THX
  • function UpdateArray(&$PATH_TAB_2),那么这将起作用。不过,如果你问我的话,编码是相当糟糕的。到目前为止,您的问题尚不清楚,与直接去$TAB_cars['car_1']['blue'] = 'TEST 2'; 相比,应该有什么优势。

标签: php arrays associative-array


【解决方案1】:

答案是(THX to @04FS):

$TAB_cars = [
        'car_1' => [
            'red' => '',
            'blue' => '',
            'type' => [
                   'light' => '',
                   'big' => ''
                      ]
                    ],
        'car_2' => [
            'green' => '',
            'brown' => ''
            ]
        ];





function UpdateArray(&$PATH_TAB_2) {
    $PATH_TAB_2 = 'TEST 2';
}

$PATH_TAB_1 = &$TAB_cars['car_1']['blue'];
UpdateArray($PATH_TAB_1);

print_r($TAB_cars);

【讨论】:

    猜你喜欢
    • 2021-09-29
    • 2017-09-02
    • 2015-07-21
    • 2012-09-20
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多