1

オブジェクトの PHP 配列があります。たとえば、2 つのプロパティab. たとえば、私はできる

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

配列は現在、各オブジェクトのaプロパティの値を配列キーとして使用しています。

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

これは、そのプロパティでオブジェクトをすばやく検索できるようにするためです。ですばやく検索する必要があるため、キーをプロパティにb設定されているものから設定されているものに切り替えたいと考えています(両方とも一意です)。ab

これを行う簡単な方法はありますか?インプレースまたは別の配列へのどちらでも問題ありません。

4

1 に答える 1

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

これにより、同じオブジェクトを指す新しい配列が作成されます。

それらを1つの配列に入れたい場合は、Joostがコメントで提案したように($arr[$object->b] = $object;代わりにループで)実行できます。ただし、これは2つのセットの間に重複するキーがない場合にのみ機能します。

于 2012-10-22T10:52:56.263 に答える