php 替换所有数组键中分隔符前的前导子串[重复]

tkqqtvp1  于 2023-04-19  发布在  PHP
关注(0)|答案(3)|浏览(471)

此问题已在此处有答案

Is there a way to change all keys in a flat indexed array to the same string ("Name")? [closed](13个回答)
9年前关闭。
我有一个像下面这样的数组。

$arr = Array ( [My_name] => Sam [My_location] => United_Kingdom [My_id] => 1 );

我在试着换钥匙:

  • 来自My_nameMy_LocationMy_id
  • Your_nameYour_LocationYour_id

所以最终的数组看起来像

Array ( [Your_name] => Sam [Your_location] => United_Kingdom [Your_id] => 1 );

我希望像str_replace()这样的东西可以工作

$arrnew = str_replace("My","Your",$arr);

但是,如果“My”是一个值,而不是一个键,那么这只是将“My”替换为“Your”。
我该怎么换钥匙?

31moq8wy

31moq8wy1#

$arrnew = array_combine(str_replace("My","Your",array_keys($arr)), $arr);
06odsfpq

06odsfpq2#

你不能改变关键点的位置,但你可以这样做:

foreach($arr as $key => $value) {
    $arr[str_replace("My","Your",$key)] = $value;
    unset($arr[$key]);
}

这将添加一个新的元素,新的键取消设置旧的元素
希望这对你有帮助

vbkedwbf

vbkedwbf3#

你可以试试这个:

foreach($arr as $key => $val){
    $newkey = str_replace("My","Your",$key);
    unset($arr[$key]);
    $arr[$newkey] = $val;
}

演示:http://codepad.org/3vKkmAXx

相关问题