【问题标题】:Search and replace in multidimensional array在多维数组中查找和替换
【发布时间】:2015-04-26 20:53:08
【问题描述】:

我有下面的多维数组,我想替换的值

 $data['meta']['attr']['road'] with an array ['test']

问题是我不知道键,它们只能通过键数组获得

$keys = ['meta', 'attr', 'road'];

这只是一个示例,键可能是任何东西,因此想要搜索每个元素,检查它并在找到键时替换

我的多维数组如下:

$data = ['meta' => [
             'time' => 11.364,
             'count' => 3,
              'attr' => [
                    'id'=> 7845,
                     'road' => [
                         'length' => 'km',
                         'width' => 'm'
                               ]
                        ]
                   ],
          'Assets' => [15,78,89]

        ];

看起来复杂的搜索和替换算法真的卡住了……有什么想法吗?

【问题讨论】:

  • 好的,我已经修改了问题...我想用 $keys 数组搜索...那个数组是动态的

标签: php arrays search multidimensional-array replace


【解决方案1】:
$keys = ['meta', 'attr', 'road'];

$arr = &$data;
foreach($keys as $key)
{
    $arr = &$arr[$key];
}

$arr = ['test'];

【讨论】:

  • 谢谢@Mex...效果很好...需要了解它如何通过引用传递
【解决方案2】:

您可以使用括号和访问多维数组值。

// set
$someArray['key']['key'] = 'value';
// get
$someVar = $someArray['key']['key'];

See arrays section on Php reference

所以在你的情况下是这样的;

$data['meta']['attr']['road'] = array('test' => 'value');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2015-06-10
    • 1970-01-01
    相关资源
    最近更新 更多