PHP中不能直接修改某数组的键名,只能通过将其中的元素逐一复制到另一个新数组中,并在赋值的时候修改键名,如;
$a = array('a'=>'China', 'b'=>'America', 'c'=>'England');
$b[0] = $a['a'];
$b[1] = $a['b']
$b[2] = $a['c'];
$a = $b;
结果为$a内容为: array(0=>'China', 1=>'America', 2=>'England');
array_combine
(PHP 5, PHP 7)
array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
说明
array_combine ( array $keys , array $values ) : array
返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。
参数
keys
将被作为新数组的键。非法的值将会被转换为字符串类型(string)。
values
将被作为 Array 的值。
返回值
返回合并的 array,如果两个数组的单元数不同则返回 false。
错误/异常
如果作为keys的数组和作为values的数组的元素个数不一样,将会抛出一个警告错误(E_WARNING)。
更新日志
版本 说明
540 (修复)早期版本中如果是空数组就报E_WARNING的错并且返回false。
范例
示例 #1 一个 array_combine() 简单的例子
<php
$arr = array('a' => 1, array('b' =>2), 'c' => 3, array(array('d' =>4), 'e' => 5));
echo searchKey($arr,4);
function searchKey($array,$value){
foreach($array as $key=>$row){
if(!is_array($row)){
if($row == $value){
$r = $key;
return $key;
}
}else{
$r = searchKey($row,$value);
if($r != -1){
return $r;
}
}
}
return -1;
}
>
热心网友回答你的那个会有问题的,你可以把1 2 3 4 5都试验一下,而且他那个只支持搜索4
我这已经优化过了,没有问题。
网采纳。
以上就是关于php怎么修改数组键名全部的内容,包括:php怎么修改数组键名、php创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值、php如何在多维数组中搜索给定的值,如果成功则返回相应的键名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)