使用object属性作为数组键

时间:2012-10-22 10:48:31

标签: php arrays object

我有一个PHP对象数组,比如两个属性ab。例如,我可以做

$arr['a1']->a = $z;
$x = $arr['a1']->b;

数组当前正在使用每个对象的a属性的值作为数组键,例如

$arr['a1']->a == 'a1'

这样我就可以通过该属性快速查找对象。我现在需要快速查询b,因此希望将密钥从设置为属性a切换为b(两者都是唯一的)。

有一种简单的方法吗?就地或另一个阵列都很好。

1 个答案:

答案 0 :(得分:3)

foreach($arr as $key => $object)
{
    $arr2[$object->b] = $object;
}

这将创建一个指向相同对象的新数组。

如果你想在一个数组中使用它们,你可以像注释中的Joost一样建议(而不是循环中的$arr[$object->b] = $object;)。但是,只有在两个集合之间没有重复的密钥时才会起作用。