本文目录一览:
- 1、php 多维数组元素值替换【高手进来】
- 2、如果替换PHP数组中的方括号[]
- 3、php批量替换数组元素
- 4、php怎样数据库行循环生成二维数组并替换其中的值再生成新的二维数组
- 5、php数组内的值替换问题
php 多维数组元素值替换【高手进来】
多重循环,然后直接修改
举个例子,将数组中所有的用户头像avator 从google改成baidu。都修改掉:
$arr = [
[
['name'='a','age'=22,'avator'=''],
['name'='b','age'=21,'avator'=''],
['name'='c','age'=20,'avator'='']
],
[
['name'='d','age'=22,'avator'=''],
['name'='e','age'=22,'avator'=''],
['name'='f','age'=22,'avator'='']
]
];
for($i=0;$icount($arr);$i++){
for($j=0;$jcount($arr[$i]);$j++){
$arr[$i][$j]['avator'] = ''.$i.'-'.$j;
}
}
echo "pre";
print_r($arr);
输出
如果替换PHP数组中的方括号[]
$ar = array('[0]','[1]','[2]','[3]','[4]','[5]','[6]','[7]','[8]');
foreach ($ar as $key=$val){
$new_ar[]=preg_replace('/\[||\]/i','',$val);
}
print_r($new_ar);
php批量替换数组元素
$arr = array("a","2","c","d","1","b","a","c","3","4","b","d","a","c",);
foreach($arr as $k=$v){
if($v=='a'){
$arr[$k] = '1';
}elseif($v=='b'){
$arr[$k] = '2';
}elseif($v=='c'){
$arr[$k] = '3';
}elseif($v=='d'){
$arr[$k] = '4';
}
}
print_r($arr);
纯手打,应该不会错
php怎样数据库行循环生成二维数组并替换其中的值再生成新的二维数组
select *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date from donku_articles
把sql语句改成上面这种,另外最好不要用fetch_row这种索引方式取值,可以用fetch_assoc这种关联的方式,
另外你的这个 貌似在while里面用不到foreach,,smarty引擎我没用过,按理说它的赋值 应该也不用while一个一个赋值,把$smarty-assign('art_recommend_row',$new_result);这个赋值拿到循环外面(smarty没用过,按照thinkphp yii2 这些框架来说 赋值给模板不需要放在循环里面),我按照我的想法把你的改了一下
include('includes/init.php');
$sql="SELECT *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date FROM `donku_articles`";
$query=$mysql-query($sql);
$result=[];
while($row=$mysql-fetch_assoc($query)){//这里应该是关联的形式,从你的fetch_row我猜是应该是fetch_assoc
$result[]=$row;
}
//下面是赋值给模板
$smarty-assign('art_recommend_row',$result);
php数组内的值替换问题
你好,很高兴为您解答.
您的问题使用以下方法可以解决
$keys=array_keys($arr1); //array_keys函数可以提取一个数组里的所有的key
for($i=0,$j=count($keys);$i$j;$i++){
$newarr[$keys[$i]]=$arr[$i];
}
最后得到的$newarr就是你要的新数组了