我是多維數組的新手,遇到了一個問題,無法繞過它。我一直在試圖把這樣的:PHP/MySQL多維數組
Array ( [1] => Array ( [cat_id] => 1 [cat_name] => Schilderijen [cat_description] => Omschrijving bij schilderijen [artists] => Array ( [artist_id] => 1 [lastName] => ..some value ) ) ) Array ( [1] => Array ( [cat_id] => 1 [cat_name] => Schilderijen [cat_description] => Omschrijving bij schilderijen [artists] => Array ( [artist_id] => 4 [lastName] => ..some value ) ) )
弄成這個樣子,所以我可以調用一個類別,並列出了相關的藝術家下方:
Array ( [1] => Array ( [cat_id] => 1 [cat_name] => Schilderijen [cat_description] => Omschrijving bij schilderijen [artists] => Array ( [artist_id] => 1 [lastName] => ..some value [artist_id] => 4 [lastName] => ..some value ) ) )
我使用下面的代碼:
$cat_id = 1;
$query = "SELECT * FROM `categorie_has_artists` ";
$query .= " JOIN `categories` ON categories.cat_id = categorie_has_artists.cat_id AND categorie_has_artists.cat_id = :cat_id";
$query .= " JOIN `artists` ON artists.artist_id = categorie_has_artists.artist_id";
$stmt = $dbh->prepare($query);
$stmt->bindParam(':cat_id', $cat_id, PDO::PARAM_INT);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$array[$row['cat_id']] = array('cat_id' => $row['cat_id'], 'cat_name' => $row['cat_name'], 'cat_description' => $row['cat_description'], 'artist' => array());
$array[$row['cat_id']]['artist'][] = array('artist_id'=>$row['artist_id'], 'lastName' => $row['lastName']);
}
第一陣列應在外部循環中,第二個應該在循環中。 make'$ isSet = false;'外部循環然後在循環內部添加'if(!$ isSet){firstArray ...; $ isSet = TRUE; } else {secondArray ...; }' – SSpoke
您不應該在同一個數組中使用不同值的相同數組鍵(artist_id,lastName)。 –