商品名 |
テレビ |
パソコン |
携帯電話 |
会員ID | 購入商品名 |
1 | テレビ |
1 | パソコン |
1 | 携帯電話 |
1 | 洗濯機 |
2 | テレビ |
2 | パソコン |
2 | 携帯電話 |
3 | パソコン |
3 | テレビ |
3 | 冷蔵庫 |
3 | 電子レンジ |
3 | DVDレコーダー |
4 | 電子レンジ |
5 | テレビ |
会員ID | 購入商品名 |
1 | テレビ |
1 | パソコン |
1 | 携帯電話 |
1 | 洗濯機 |
2 | テレビ |
2 | パソコン |
2 | 携帯電話 |
3 | パソコン |
3 | テレビ |
3 | 冷蔵庫 |
3 | 電子レンジ |
3 | DVDレコーダー |
4 | 電子レンジ |
5 | テレビ |
<?php $arr1 = array( array(1,'テレビ'), array(1,'パソコン'), array(1,'携帯電話'), array(1,'洗濯機'), array(2,'テレビ'), array(2,'パソコン'), array(2,'携帯電話'), array(3,'パソコン'), array(3,'テレビ'), array(3,'冷蔵庫'), array(3,'電子レンジ'), array(3,'DVDレコーダー'), array(4,'電子レンジ'), array(5,'テレビ') ); $arr2 = array('テレビ','パソコン','携帯電話'); $view_arr = array(); // 会員テーブルの行を1行ずつ見ていく for ($i = 0; $i < count($arr1); $i++) { // 会員テーブルの商品名が、商品一覧テーブルに含まれているか if (true === in_array($arr1[$i][1], $arr2)) { // 含まれて「いる」場合は、表示対象行となる $view_arr[] = $arr1[$i]; } } for ($i = 0; $i < count($view_arr); $i++) { for ($j = 0; $j < count($view_arr[$i]); $j++) { echo $view_arr[$i][$j] . ','; } echo "\r\n"; }-------------------------------------------------------------------------------------------------------------------------------------------------------------
会員ID | 購入商品名 |
1 | テレビ |
1 | パソコン |
1 | 携帯電話 |
1 | 洗濯機 |
2 | テレビ |
2 | パソコン |
2 | 携帯電話 |
3 | パソコン |
3 | テレビ |
3 | 冷蔵庫 |
3 | 電子レンジ |
3 | DVDレコーダー |
4 | 電子レンジ |
5 | テレビ |
<?php $arr1 = array( array(1,'テレビ'), array(1,'パソコン'), array(1,'携帯電話'), array(1,'洗濯機'), array(2,'テレビ'), array(2,'パソコン'), array(2,'携帯電話'), array(3,'パソコン'), array(3,'テレビ'), array(3,'冷蔵庫'), array(3,'電子レンジ'), array(3,'DVDレコーダー'), array(4,'電子レンジ'), array(5,'テレビ') ); $arr2 = array('テレビ','パソコン','携帯電話'); $view_arr = array(); // 会員テーブルの行を1行ずつ見ていく for ($i = 0; $i < count($arr1); $i++) { // 会員テーブルの商品名が、商品一覧テーブルに含まれていないか if (false === in_array($arr1[$i][1], $arr2)) { // 含まれて「いない」場合は、表示対象行となる $view_arr[] = $arr1[$i]; } } for ($i = 0; $i < count($view_arr); $i++) { for ($j = 0; $j < count($view_arr[$i]); $j++) { echo $view_arr[$i][$j] . ','; } echo "\r\n"; }-------------------------------------------------------------------------------------------------------------------------------------------------------------
会員ID | 購入商品名 |
1 | テレビ |
1 | パソコン |
1 | 携帯電話 |
1 | 洗濯機 |
2 | テレビ |
2 | パソコン |
2 | 携帯電話 |
3 | パソコン |
3 | テレビ |
3 | 冷蔵庫 |
3 | 電子レンジ |
3 | DVDレコーダー |
4 | 電子レンジ |
5 | テレビ |
<?php $arr1 = array( array(1,'テレビ'), array(1,'パソコン'), array(1,'携帯電話'), array(1,'洗濯機'), array(2,'テレビ'), array(2,'パソコン'), array(2,'携帯電話'), array(3,'パソコン'), array(3,'テレビ'), array(3,'冷蔵庫'), array(3,'電子レンジ'), array(3,'DVDレコーダー'), array(4,'電子レンジ'), array(5,'テレビ') ); $arr2 = array('テレビ','パソコン','携帯電話'); $view_arr = array(); // 会員テーブルAの行を1行ずつ見ていく for ($i = 0; $i < count($arr1); $i++) { // 商品一覧テーブルの行を1行ずつ見ていく for ($j = 0; $j < count($arr2); $j++) { // 会員テーブルBの行を1行ずつ見ていく for ($k = 0; $k < count($arr1); $k++) { // 会員テーブルの会員IDが同じものの中で商品を比較したいので // 会員テーブルの会員IDが同じかどうかチェックする if ($arr1[$i][0] === $arr1[$k][0]) { // 同じ会員IDの中で、商品名が一致するか if (true === in_array($arr2[$j], $arr1[$k])) { // 含まれて「いる」なら表示対象行とし、会員テーブルAの参照行を次の行にする /* 同じ会員IDの中で、商品名が1行でも一致していたら、 その会員IDの全ての行が表示対象行となる */ $view_arr[] = $arr1[$i]; $k = count($arr1); $j = count($arr2); } } } } } for ($i = 0; $i < count($view_arr); $i++) { for ($j = 0; $j < count($view_arr[$i]); $j++) { echo $view_arr[$i][$j] . ','; } echo "\r\n"; }-------------------------------------------------------------------------------------------------------------------------------------------------------------
会員ID | 購入商品名 |
1 | テレビ |
1 | パソコン |
1 | 携帯電話 |
1 | 洗濯機 |
2 | テレビ |
2 | パソコン |
2 | 携帯電話 |
3 | パソコン |
3 | テレビ |
3 | 冷蔵庫 |
3 | 電子レンジ |
3 | DVDレコーダー |
4 | 電子レンジ |
5 | テレビ |
<?php $arr1 = array( array(1,'テレビ'), array(1,'パソコン'), array(1,'携帯電話'), array(1,'洗濯機'), array(2,'テレビ'), array(2,'パソコン'), array(2,'携帯電話'), array(3,'パソコン'), array(3,'テレビ'), array(3,'冷蔵庫'), array(3,'電子レンジ'), array(3,'DVDレコーダー'), array(4,'電子レンジ'), array(5,'テレビ') ); $arr2 = array('テレビ','パソコン','携帯電話'); $view_arr = array(); $str = ''; // 会員テーブルAの行を1行ずつ見ていく for ($i = 0; $i < count($arr1); $i++) { // 商品名一致カウンター $hits = 0; // 商品一覧テーブルの行を1行ずつ見ていく for ($j = 0; $j < count($arr2); $j++) { // 会員テーブルBの行を1行ずつ見ていく for ($k = 0; $k < count($arr1); $k++) { // 会員テーブルの会員IDが同じものの中で商品を比較したいので // 会員テーブルの会員IDが同じかどうかチェックする if ($arr1[$i][0] === $arr1[$k][0]) { // 同じ会員IDの中で、商品名が一致するかどうかをチェック if (true === in_array($arr2[$j], $arr1[$k])) { // 商品名が同じなら商品名一致カウンターを増やし、商品一覧テーブルの参照行を次の行にする $hits++; break; } } } // 商品名一致カウンターと商品一覧テーブルの商品数が同じかどうかチェックする if ($hits === count($arr2)) { // 同じ場合は、商品一覧テーブル内の商品が全て含まれているので、表示対象行とする $view_arr[] = $arr1[$i]; } } } for ($i = 0; $i < count($view_arr); $i++) { for ($j = 0; $j < count($view_arr[$i]); $j++) { echo $view_arr[$i][$j] . ','; } echo "\r\n"; }-------------------------------------------------------------------------------------------------------------------------------------------------------------
Author:kitoku
「奇特」を目指しているITエンジニアです。ホームページ:http://www.kitoku-magic.net/