$arr = array(
"r"=>"red",
"b"=>"blue",
"l"=>"lime"
);我现在要将 value=“blue”的key值替换为 “bl” 并且将对应的 "b"=>"blue" 删除 如何实现
"r"=>"red",
"b"=>"blue",
"l"=>"lime"
);我现在要将 value=“blue”的key值替换为 “bl” 并且将对应的 "b"=>"blue" 删除 如何实现
unset($arr['b']);
我在用unset的时候提示 Cannot unset string offsets
{
if($arr[a]=="blue")
{
$arr["b1"]="blue";
unset($arr[a]);
}
}
我在用unset的时候提示 Cannot unset string offsets
$matchValueArray = array($valueHanlder);
# 获取搜索到结果的数据索引
$getKey = array_flip(array_intersect($arr,$matchValueArray));
if(!empty($getKey)){
$key = $getKey[$valueHanlde];
unset($arr[$key]);
$arr[$keyReplace] = $valueHanlder;
return $arr;
}else{
return false;
}
} $arr = array(
"r"=>"red",
"b"=>"blue",
"l"=>"lime"
); $arr = arr($arr);
print_r($arr);
我是测试过才给你贴出来的我测试的:
输入数组是
$arr = array(
"r"=>"red",
"b"=>"blue",
"l"=>"lime"
);函数arr(原数组,需替换单元的值,对应值的新键)默认情况是替换数组中有"blue"的键位为"bl"print_r(arr($arr));
输出结果
Array
(
[r] => red
[l] => lime
[bl] => blue
)你是直接复制代码测试的吗?
$arr = array_flip($arr);
$arr['blue'] = 'value';
$arr = array_flip($arr);
$arr = array(
"r"=>"red",
"b"=>"blue",
"l"=>"lime"
);
$arr['bl']="blue";
unset($arr['b']);
var_dump($arr);
?>楼主出现“Cannot unset string offsets”大概是因为在unset之前$arr被设为字符了,如以下错误:
<?php
$arr = 'abc';
$arr['bl']="blue";
unset($arr['b']);
var_dump($arr);
?>