php 多维数组元素值替换【高手进来】

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 多维数组元素值替换【高手进来】相关的知识,希望对你有一定的参考价值。

$arr = array(
array('id'=>'1','media'=>array('uid'=>'10','name'=>'用户名10','avatar'=>'01头像图片远程地址'),'title'=>'标题001','images'=>array('图片01远程地址','图片02远程地址','图片03远程地址'),'url'=>'url'),
array('id'=>'2','media'=>array('uid'=>'5','name'=>'用户名5','avatar'=>'05头像图片远程地址'),'title'=>'标题002','images'=>array('图片04远程地址'),'url'=>'url'),
array('id'=>'3','media'=>array('uid'=>'9','name'=>'用户名9','avatar'=>'09图像图片远程地址'),'title'=>'标题003','images'=>array(),'url'=>'url'),
);
这是原始数组形式,其中元素images是数组形式,图片地址数量是随机的,如何能够将 images和avatar里面的值给一一提取出来 ,然后替换成新的图片地址。最后呈现的结果还是这种数组形式。
说白了,就是将远程图片地址替换成本地图片地址,转换成本地图片地址这一步可以忽略过去。
最终结果为这个样子:
$arr = array(
array('id'=>'1','media'=>array('uid'=>'10','name'=>'用户名10','avatar'=>'01头像图片本地地址'),'title'=>'标题001','images'=>array('图片01本地地址','图片02本地地址','图片03本地地址'),'url'=>'url'),
array('id'=>'2','media'=>array('uid'=>'5','name'=>'用户名5','avatar'=>'05头像图片本地地址'),'title'=>'标题002','images'=>array('图片04本地地址'),'url'=>'url'),
array('id'=>'3','media'=>array('uid'=>'9','name'=>'用户名9','avatar'=>'09图像图片本地地址'),'title'=>'标题003','images'=>array(),'url'=>'url'),
);

多重循环,然后直接修改

举个例子,将数组中所有的用户头像avator 从google改成baidu。都修改掉:

$arr = [
  [
    ['name'=>'a','age'=>22,'avator'=>'http://www.google.com'],
    ['name'=>'b','age'=>21,'avator'=>'http://www.google.com'],
    ['name'=>'c','age'=>20,'avator'=>'http://www.google.com']  
  ],
  [
    ['name'=>'d','age'=>22,'avator'=>'http://www.google.com'],
    ['name'=>'e','age'=>22,'avator'=>'http://www.google.com'],
    ['name'=>'f','age'=>22,'avator'=>'http://www.google.com']
  ]
];

for($i=0;$i<count($arr);$i++)
    for($j=0;$j<count($arr[$i]);$j++)
       $arr[$i][$j]['avator'] = 'http://www.baidu.com/'.$i.'-'.$j;
    

echo "<pre>";
print_r($arr);

输出


参考技术A 你的这个很有规律,挨个遍历。到了images这一层的array后,就把内容替换掉就行了呗追问

麻烦大神给个实例,谢谢了!

php批量替换数组中的元素值

<?php


$files = array();
foreach (glob("/www/wwwroot/5.com/*.jpg") as $file) {
$files[] = $file;
}


$ss =str_replace(‘/www/wwwroot/5.com/‘,‘5.com.com/‘,$files);


print_r($ss);

 

以上是关于php 多维数组元素值替换【高手进来】的主要内容,如果未能解决你的问题,请参考以下文章

根据值从多维数组中删除元素

查找并替换多维数组中的每个元素 [关闭]

php 多维数组的差集以及将多维数组元素返回成一维数组

如何在 Laravel/PHP 中创建多维数组

php多维数组循环优化

PHP 多维数组