我有两个数组,代码中的一个数组表示标题(简单字符串),另一个是电子邮件(也是简单字符串)。这两个数组将始终相同,我需要创建它们的键值对。[ $email => $title]所以,我的 $email 数组如下所示:Array( [0] => test@test.com [1] => test@test.com [2] => test@test.com)我的 $tile 数组如下所示:Array( [0] => Distributor [1] => Internal [2] => Agency)所以我需要这两个数组是:Array( [test@test.com] => Distributor [test@test.com] => Internal [test@test.com] => Agency)一开始我使用的是 array_combine,但是当这个重复的电子邮件值发生时,我的代码坏了。在这一点上我找不到好的解决方案。我尝试使用 php 手册中的这个函数来操作数组:function array_combine_($keys, $values){ $result = array(); foreach ($keys as $i => $k) { $result[$k][] = $values[$i]; } array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;')); return $result;}但它已被弃用,并且不起作用。我感谢您对此问题的任何帮助。
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
关联数组中不能有多个相同的键。
您可以使用值作为键和键作为值
$keys = ['test@test.com','test@test.com','test@test.com'];
$values = ['Distributor','Internal','Agency'];
$res = array_combine($values, $keys);
输出
Array
(
[Distributor] => test@test.com
[Internal] => test@test.com
[Agency] => test@test.com
)
或者您可以添加一些内容使它们像索引号一样唯一,然后删除该索引号
$keys = ['test@test.com','test@test.com','test@test.com'];
$values = ['Distributor','Internal','Agency'];
$res = [];
array_walk($keys, function($v, $k) use ($values, &$res){
$res[$v."-".$k] = $values[$k];
});
输出
Array
(
[test@test.com-0] => Distributor
[test@test.com-1] => Internal
[test@test.com-2] => Agency
)
在这里您可以删除 -Index 以使用它们。
- 1 回答
- 0 关注
- 120 浏览
添加回答
举报
0/150
提交
取消