我尝试使用str_replace()
来删除数组中value4
元素中的“my.”。
但是,str_replace("my.", "", $myarray);
并没有改变任何东西。str_replace()
不适用于二维数组吗?
我的示例数据和编码尝试:
$array = [
[
'value1' => 'John Doe',
'value2' => 'Father',
'value3' => '',
'value4' => 'http://www.website.my.com'
],
[
'value1' => 'Jane Doe',
'value2' => 'Mother',
'value3' => '',
'value4' => 'http://www.website.my.com'
]
// ...
];
$out = str_replace('.my', '', $array);
var_export($out);
4条答案
按热度按时间qjp7pelc1#
不,它适用于字符串,或者一维数组……你可以通过回调函数array_walk_recursive来使用它
new9mtju2#
您可以使用
array_walk_recursive()
http://php.net/manual/en/function.array-walk-recursive.php对每个子元素执行替换(注意:回调仅针对 * leaf *(非数组)触发:如果替换应该只出现在
value4
键上-将其添加为条件:hgb9j2n63#
让它变得简单
kqhtkvqz4#
我同意@splash58的观点,你的2d数组不需要递归方法。
您可以使用
foreach()
最直接地访问和改变特定列的值。在循环签名中声明&$v
可确保对该值的任何更改都在原始数组中表示。代码:(Demo)
当然,同样的操作也可以对整行进行,但是你的示例数据表明只有一列是有意义的目标。无论如何,下面是如何使用
str_replace()
以同样的方式修改1d数组:(Demo)