1

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

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

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

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

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

是否有捷径可寻?就地或进入另一个阵列都很好。

4

1 回答 1

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

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

如果您希望它们在一个数组中,您可以按照 Joost 在评论中的建议进行操作($arr[$object->b] = $object;而不是在循环中)。但是,这仅在两组之间没有重复键的情况下才有效。

于 2012-10-22T10:52:56.263 回答