首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中搜索和替换数组中键的值

在PHP中搜索和替换数组中键的值
EN

Stack Overflow用户
提问于 2014-07-07 23:18:57
回答 3查看 99关注 0票数 0

假设我有这样一个数组:

代码语言:javascript
复制
    $myArray = array( 
    'a' => 'alpha',
    'b' => array(
        'Z' => 'zulu' )
    );

我想搜索'Z‘键并替换它的值。

我试过迭代器、前级循环等等,但是没有运气。

*经修正的语法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-07 23:33:03

您可以传递对array_walk_recursive的引用:

代码语言:javascript
复制
   $myArray = array( 
    'a' => 'alpha',
    'b' => array(
        'Z' => 'zulu' )
    );

$newvalue = 'zebra';

array_walk_recursive($myArray, function(&$value, $key) use($newvalue){
    if($key=='Z'){
        $value = $newvalue;
    }
});

print_r($myArray);

示例:http://codepad.viper-7.com/ajsYEn

票数 1
EN

Stack Overflow用户

发布于 2014-07-07 23:29:43

代码语言:javascript
复制
<?php

$myArray = array(
    'a' => 'alpha',
    'b' => array (
        'Z' => 'zulu' 
    ),
);


foreach($myArray as $key => $value) {
    if (is_array($value)) {
        foreach($value as $k => $v) {
            if ($k == 'Z')
            {
                //do something
                $myArray[$key]['newKey'] = $v;
                unset($myArray[$key][$k]);
            }
        }
    }
}

print_r($myArray);

输出:

代码语言:javascript
复制
Array
(
    [a] => alpha
    [b] => Array
        (
            [newKey] => zulu
        )

)
票数 1
EN

Stack Overflow用户

发布于 2014-07-07 23:31:33

您可以使用array_walk_recursive并通过引用传递:

代码语言:javascript
复制
array_walk_recursive($myArray, function(&$item, $key) {
   if ($key == 'Z') $item = "hi";
});

http://sandbox.onlinephpfunctions.com/code/ad750cbb5b30b87f9e6068ba15420cf924ed5a7b

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24621429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档