我有一个PHP对象数组,比如两个属性a
和b
。例如,我可以做
$arr['a1']->a = $z;
$x = $arr['a1']->b;
数组当前正在使用每个对象的a
属性的值作为数组键,例如
$arr['a1']->a == 'a1'
这样我就可以通过该属性快速查找对象。我现在需要快速查询b
,因此希望将密钥从设置为属性a
切换为b
(两者都是唯一的)。
有一种简单的方法吗?就地或另一个阵列都很好。
答案 0 :(得分:3)
foreach($arr as $key => $object)
{
$arr2[$object->b] = $object;
}
这将创建一个指向相同对象的新数组。
如果你想在一个数组中使用它们,你可以像注释中的Joost一样建议(而不是循环中的$arr[$object->b] = $object;
)。但是,只有在两个集合之间没有重复的密钥时才会起作用。