2016-12-20 33 views
0

私は、以下に示すような産業とカテゴリのテーブルを持っています。複数の次元の配列と一致するmysqlカラム

id|industry|category  | 
1 |Building|Air Conditioning| 
2 |Building|Roofing   | 
3 |Security|Cameras   | 

私はこれにアプローチする最良の方法は何

array(
    "Building" => array(
     "Air Conditioning", 
     "Roofing", 
    ), 
    "Security" => array(
     "Cameras", 
    ), 
); 

を次のように配列を返すようにしようとしています。

ご協力いただきありがとうございます。

$query = mysql_query('select * from table'); 
foreach ($data = mysql_fetch_object($query)) { 
    $array[$data->industry][] = $data->category; 
} 

print_r($array); 

答えて

0

ただ、データ上で一回反復:

$data = [ 
    [1, "Building", "Air Conditioning"], 
    [2, "Building", "Roofing"], 
    [3, "Security", "Cameras"] 
]; 
$result = []; 
foreach ($data as $row) { 
    if (!array_key_exists($row[1], $result)) { 
     $result[$row[1]] = []; 
    } 
    array_push($result[$row[1]], $row[2]); 
} 
var_dump($result); 

Link to Fiddle

+0

ありがとう、これはあなたの知識のおかげで最高の応答でした。 –

1

はこれを試しますデータベースとのやりとりのコード:

$con = mysqli_connect('localhost', 'root', '', 'db_name'); 
$query = "SELECT * FROM tbl_industries"; 

if($result = mysqli_query($con, $query)) { 
    while($industry = mysqli_fetch_assoc($result)) { 
     $industry_name = $industry['industry']; 
     $industries[$industry_name][] = $industry['category']; 
    } 

    mysqli_free_result($result);   
    var_dump($industries); 
} 
0
$tbl_industries = array(
    array(
     'id' => 1, 
     'industry' => 'Building', 
     'category' => 'Air Conditioning' 
    ), 
    array(
     'id' => 2, 
     'industry' => 'Building', 
     'category' => 'Roofing' 
    ), 
    array(
     'id' => 3, 
     'industry' => 'Security', 
     'category' => 'Cameras' 
    ) 
); 

foreach($tbl_industries as $industry) { 
    $industry_name = $industry['industry']; 
    $industries[$industry_name][] = $industry['category']; 
} 

var_dump($industries); 

OR

関連する問題