MYSQL de aşağıdaki gibi bir tablo var. Bu tablodan aşağıdaki gibi bir JSON elde etmek mümkün mü? Mümkünse sadece SQL ve php ile mi yapabiliriz sanırım.





[
{
"seri":"Naruto",
"random": [
    {
        "klasor": "300",
        "yol": ["1.jpg", "2.jpg", "3.jpg"]
    },
    {
        "klasor": "301",
        "yol": ["1.jpg", "2.jpg", "3.jpg"]
    }
]
},
{
"seri":"One Piece",
"random": [
    {
        "klasor": "788",
        "yol": ["1.jpg", "2.jpg", "3.jpg"]
    },
    {
        "klasor": "789",
        "yol": ["1.jpg", "2.jpg", "3.jpg"]
    }
]
}
]

API index.php:

function getMangas () {
$sql = "SELECT seri,klasor,yol FROM okuma";
try {
	$db = getConnection();
    $stmt = $db->query($sql);
	$nArray = array();
	while( $mangas = $stmt->fetch(PDO::FETCH_ASSOC) ) {   
		$nArray[array_unique($mangas["seri"])][] = array('klasor' => array_unique($mangas['klasor']), 'yol' => explode(",", $mangas['yol']));
	}

Çözdüm birinden yardım alarak. Çözüm:

while($mangas = $stmt->fetch(PDO::FETCH_ASSOC) ) {   
  // debug, run this to see what data comes out
  //print_r($mangas);
  
  $nArray[$mangas['seri']][$mangas['klasor']]['yol'][] = $mangas['yol'];
  // short path: preg_replace('~^.*/~', '', $mangas['yol'])
}

//print_r($nArray); //debug to see the full array

foreach ($nArray as $seri => $d1) {
  foreach ($d1 as $klasor => $d2) {
    $nArray[$seri][$klasor] = array_unique($d2);    
  }
}
$i = 0;
foreach ($nArray as $seri => $seriArr) {
    $result[$i]['seri'] = $seri;
    foreach ($seriArr as $k => $v) {
    $result[$i]['randomword'][] = ['klasor' => ($k.''), 'yol' => $v['yol']];
    }
    $i++;
}