foreach でデータ クエリをループするためのコードの量は比較的少ないですが、パフォーマンスは比較的低くなります。より良い解決策は、ID を収集し、それらをすべて一度にクエリすることです。ただし、これはデータ構造が不可能になるという事実につながります。 PHP 独自の関数を使用してマージすることができます。今日テストしました:
次のバイトで記述された関数を使用すると、問題を解決できます
データベースから取り出されたデータは、常に多かれ少なかれ私たちの頭の中にあるデータ構造と一致しません。以下の 2 つの配列と同様、SQL の左結合と同様の 2 つの配列のマージを形成するには:
コードをコピー コードは次のとおりです:
$test1 = Array(
0 => Array(
'id' => 9478137、
'create_time' => 1394760724
)、
1 => Array(
'id' => 9478138、
'create_time' => 1394760725
)、
2 = > Array(
'id' =& gt ; 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
) 'メッセージ' => '愛しています'
),
1 => array(
'id' => 9478138,
'メッセージ' => '会いたい'
)
);これら 2 つの配列を結合したいのですが、これは SQL と似ています。左結合を関連付けるにはどの関数を使用しますか?そうですね、最初は誰も見つけずに自分で書きました。 $field2 = '') {
foreach($array1 as $key1 => $value1) ) {
foreach ($array2 as $key2 => $value2) {
if($value1 [$field1] == $value2[$field2]) {
$ret[$key1] = array_merge($value1, $ value2);
}
} } return $ret; }
改良されたメソッド、配列添字を使用し、2 つのループを使用します: left join と同様のメソッドを作成します
コードをコピーします
以下:
$test1 = Array(
0 => Array(
'id' = > 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => ; 9478138,
'create_time' => 1394760725 )、2 => Array( 'id' => 9478138, 'create_time' => 1394760725
) ;
$test2 = 配列(
0 => 配列(
'id' => 9478137,
'メッセージ' => '愛しています'
),
1 => 配列(
'id' => 9478138,
'メッセージ' = > '寂しい'
)
);
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array()//配列添字メソッド
foreach を使用します。 ($array2 as $key => $value) {
$array3[$value[$ field1]] = $value;
}
foreach ($array1 as $key => $value) {
$ret[] = array_merge($array3[$value[$field1]], $value);
}
$ret を返す
}
$ret = _mergerArray($test1, $test2, 'id', 'id'); ($ret);exit;
出力結果は次のとおりです:
コードをコピー
コードは次のとおりです:
Array
(
[0] => Array
(
[id ] => [メッセージ] =&gt =>あなた
[create_time] => 1394760725
)
[2] => Array
(
[id] = > 9478138
[message] => 会いたかった
[create_time] => 1394760725 ) )
左結合と同等ですか?
http://www.bkjia.com/PHPjc/743150.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/743150.html
技術記事
foreach でデータ クエリをループするためのコードの量は比較的少ないですが、パフォーマンスは比較的低くなります。より良い解決策は、ID を収集し、それらをすべて一度にクエリすることです。ただし、これによりデータ構造が異なります。 ...