如何替换多维 php 数组中所有出现的值? [英] How do I replace all occurances of a value in a multidimensional php array?
问题描述
如何在嵌套/多维 php 数组中用BAR"替换任何出现的值FOO"?就我而言,我试图用字符串NAN"替换 NAN(不是数字)值,但应该适用相同的原则.我不完整的示例代码:
函数 replaceNan($data){//这里可能有一些递归?}$数据 = ['富' =>南,'酒吧' =>['一个' =>1、'南' =>南],'巴兹' =>'巴兹'];$data = replaceNan($data);var_dump($data);
除非有一个核心 php 函数可以提供帮助,否则我认为将涉及递归,但我现在无法弄清楚.任何帮助表示赞赏.
为了清楚起见,在我的示例中,我希望 $data
被修改为如下所示:
怎么样
function replace_nan(&$ary) {foreach($ary as &$item) {if(is_double($item) && is_nan($item))$item = "南";否则 if(is_array($item))replace_nan($item);}}
数组通过引用传递并就地修改:
$data = [...];replace_nan($data);var_dump($data);
How would I replace any occurrence of value "FOO" with "BAR" in a nested/multidimensional php array? In my case, I'm trying to replace NAN (not a number) values with a string "NAN", but the same principles should apply. My incomplete example code:
function replaceNan($data)
{
// probably some recursion here?
}
$data = [
'foo' => NAN,
'bar' => [
'one' => 1,
'nan' => NAN
],
'baz' => 'BAZ'
];
$data = replaceNan($data);
var_dump($data);
Unless there's a core php function that will help, I assume recursion will be involved, but I just can't figure it out right now. Any help appreciated.
Edit: Just to be clear, in my example, I would want $data
to be modified so it looks like:
[
'foo' => "NAN",
'bar' => [
'one' => 1,
'nan' => "NAN"
],
'baz' => 'BAZ'
]
How about
function replace_nan(&$ary) {
foreach($ary as &$item) {
if(is_double($item) && is_nan($item))
$item = "NAN";
else if(is_array($item))
replace_nan($item);
}
}
Array is passed by reference and modified in place:
$data = [...];
replace_nan($data);
var_dump($data);
这篇关于如何替换多维 php 数组中所有出现的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!