任意の位置から多次元配列にアクセスする方法はありますか?例:多次元配列
$title = $arr[2][2]; // which outputs Some Title Two
をそして、我々は取得したい場合:私たちは例えば、2項目のIDを持っていると、その項目のタイトルを取得したい場合
$arr = array (
1 => array (1, 'some-url-one', 'Some Title One'),
2 => array (2, 'some-url-two', 'Some Title Two'),
3 => array (2, 'some-url-three', 'Some Title Three'),
);
その後、我々は単に使用しますその同じ項目のURLは単純に使用します。
$title = $arr[2][1]; // which outputs some-url-two
しかし、我々はURL(一部-URL-2)を持っていると、そのアイテムのIDまたはタイトルを取得したい場合は?
あり2人の債務で:
の1-ループは、配列を通って、そのURLが 2- idと最善の方法ことを行うにはどのようにタイトル
を得る存在するかどうかを確認?
3- IDタイトル
$id2url = array (
1 => 'some-url-one',
2 => 'some-url-two',
3 => 'some-url-three'
);
に二つ他は同じ手順である
1- IDがIDに
2- URLをURLに:私はすでに3つの配列を有します。そこで、3つの配列を組み合わせてコードを最適化したかったのです。どのようにIDとタイトルにアクセスするには?
ありがとうございました。
あなたがarray_flip()
PHP Manualのために見えるかもしれません
上記の3つの配列の場合は? – medk
これは動作しません。キーは整数または文字列のみになりますが、配列には使用できません。したがって、lookup-hashとして動作する配列が1つ必要です。これは、多次元配列のインデックスです。 – hakre
これは一般的な検索の問題です。標準的なアプローチは、ここでarray_flip()が行っている逆インデックスを構築することです。あなたの配列が比較的小さい場合は、O(n)ルックアップについて気にしないかもしれません。そうでなければ、これがDBから引き出されたデータであれば、URL列にインデックスを追加できます。 – fearlesstost