php数组的key与value翻转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php数组的key与value翻转相关的知识,希望对你有一定的参考价值。
$arr = array("a","b","c","a","c","a",'d','f');
$list = array_count_values($arr);
现在这个$list数组的key是$arr的索引;value是该key在$arr数组中出现的次数;
现在想将这个$list数组的key与value进行逆转;
不知道怎么做!
$arr = array("a","b","c","a","c","a",'d','f');
$list = array_count_values($arr);
echo "<pre>";
print_r($list);
foreach($list as $k=>$v)
$arr1[$v]=$k;
建议重组
输出如下:
Array
(
[a] => 3
[b] => 1
[c] => 2
[d] => 1
[f] => 1
)
Array
(
[3] => a
[1] => f
[2] => c
)追问
怎么重组法呢?
比如说:我现在的结果是
Array
(
[a] => 3
[b] => 1
[c] => 2
[d] => 1
[f] => 1
);
我现在就像用后面的值作为这个数组的排序条件;
$arr = array("a","b","c","a","c","a",'d','f');
$list = array_count_values($arr);
asort($list) //正序排
var_dump($list);
arsort($list); //倒序排
var_dump($list);本回答被提问者采纳 参考技术B array_diff()追问
不对呀!
这个函数是返回数组的差集啊!
我现在的结果是:Array
(
[a] => 3
[b] => 1
[c] => 2
[d] => 1
[f] => 1
)
我要将这个结果变为:
Array
(
[3] => a
[2] => c
[1] => b
[1] => d
[1] => f
)
就是讲数组按照key进行倒叙排列
记错了,array_flip()
php中对2个数组相加的函数
<?php function array_add($a,$b){ //根据键名获取两个数组的交集 $arr=array_intersect_key($a, $b); //遍历第二个数组,如果键名不存在与第一个数组,将数组元素增加到第一个数组 foreach($b as $key=>$value){ if(!array_key_exists($key, $a)){ $a[$key]=$value; } } //计算键名相同的数组元素的和,并且替换原数组中相同键名所对应的元素值 foreach($arr as $key=>$value){ $a[$key]=$a[$key]+$b[$key]; } //返回相加后的数组 return $a; } $a = array(‘0‘=>‘2‘,‘1‘=>‘4‘,‘3‘=>‘8‘,‘a‘=>‘100‘); $b = array(‘0‘=>‘5‘,‘2‘=>‘4‘,‘b‘=>‘33‘,‘a‘=>‘22‘); $arr=array_add($a,$b); print_r($arr); ?>
以上是关于php数组的key与value翻转的主要内容,如果未能解决你的问题,请参考以下文章