Mysql
 sql >> база данни >  >> RDS >> Mysql

Създаване на масив в масив от mysql данни към json

Трябва да преназначите масива си и след това да инициализирате масив за ключа за права... така че променете своя цикъл while нещо подобно:

$json_response = array();
while($row = $result->fetch_assoc()) {
    if (!isset($json_response[ $row['idCategory'] ])) {
        $json_response[ $row['idCategory'] ] = [
            'idCategory' => $row['idCategory'],
            'nameCategory' => $row['nameCategory'],
            'rights' => [],
        ];
    }
    $json_response[ $row['idCategory'] ]['rights'][] = [
        'idRight' => $row['rid'],
        'name' => $row['rname'],
        'price' => $row['price'],
        'image' => $row['rimg']
    ];
}

// We want the final result to ignore the keys and to create a JSON array not a JSON object 
$data = [];
foreach ($json_response as $element) {
    $data[] = $element;
}

echo json_encode($data);

Тази част от кода $json_response[ $row_array['idCategory'] ] помага да се поддържа уникално групиране на данните, защото създава хеш въз основа на idCategory. Масивът може да има само един ключ и тъй като idCategory винаги е уникален, можем да го използваме като ключ за групиране. След това, тъй като сега имаме масив, базиран на хеш, трябва да създадем нов масив, който е „истински“ масив за когато се преобразува в JSON. Не искате да използвате GROUP BY или GROUP_CONCAT в тази ситуация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намеря n'-та най-висока стойност на колона?

  2. Подреждане по псевдоним в mysql, съдържащ се в if заявка

  3. арабският текст се съхранява като ???

  4. PHP CRUD Създавайте, редактирайте, актуализирайте и изтривайте публикации с MySQL база данни

  5. Скрипт за импортиране на CSV в Mysql, за да съответства на полета