私は2つの2次元配列(実際にはネストされた連想配列です)を定義済みのストラテジ:$array1
と$array2
にしました。PHPで2次元配列をマージする
$array1 = array(
array(id => 1),
array(id => 2),
array(id => 3),
array(id => 4),
array(id => 5)
);
二番目の配列は、オブジェクト間の関係リスト(例えば、オブジェクト2、オブジェクト3、4に接続され、そして5):
$array2 = array(
array(id1 => 1, id2 => 2),
array(id1 => 2, id2 => 3),
array(id1 => 2, id2 => 4),
array(id1 => 2, id2 => 5)
);
目的最初の配列は、それらのID番号ですべてのオブジェクトを一覧表示します$array2
のid値を$array1
の対応するインデックスに置き換えることです。したがって、私の場合、結果は次のようになります。
0 1 // index of value 1 (id1) in $array1 is 0, index of 2 (id2) is 1
1 2
1 3
1 4
以下のペーストは現在の作業です。まず第一に、私は「変換」$array1
1次元配列へ:
foreach ($array2 as $row) {
$value1 = $row['id1'];
$key1 = array_search($value1, $array3);
echo $key1;
echo "\t";
$value2 = $row['id2'];
$key2 = array_search($value2, $array3);
echo $key2;
echo '<br />';
}
:その後、私は
array_search
機能を使用して
$array2
を通過し、与えられた値のため
$array3
を検索し、
$array3
で対応するキーを返す
foreach ($array1 as $row) {
$array3[] = $row['id'];
}
私の質問は簡単です:それを行うより洗練された方法があります(つまり、array_search関数を使用しないで)。
事前に感謝の意を表します。
ベスト、アンドレイ
感謝を反転させることができますすることができます魅力。 – Andrej