Из массива в JSON

Я делаю парсер статей, и мне нужно поместить все проанализированные данные в josn. Я попытался поместить их в массив, а затем преобразовать в JSON, но у меня есть некоторые проблемы. Я получаю JSON следующим образом:

[{название:название1}][{название:название2}][{название:название3}]

Но я хочу так:

[{название:название1},{название:название2},{название:название3}]

Как я могу это сделать?

<?

foreach ($content_prev as $el) {
    $pq = pq($el);
    $date = $pq->find('time')->html();
    $title = $pq->find('h3 a')->html();
    $link = $pq->find('h3 a')->attr('href');

    $data_link = file_get_contents($link);
    $document_с = phpQuery::newDocument($data_link);
    $content = $document_с->find('.td-post-content');

    $arr = array (
        array( 
            "title" => $title
        ), 
    ); 

    echo json_encode($arr, JSON_UNESCAPED_UNICODE);
}

person Denis L    schedule 25.12.2019    source источник


Ответы (1)


Попробуйте удалить один array в $arr

Используйте ниже одного.

<?
foreach ($content_prev as $el) {
    $pq = pq($el);
    $date = $pq->find('time')->html();
    $title = $pq->find('h3 a')->html();
    $link = $pq->find('h3 a')->attr('href');

    $data_link = file_get_contents($link);
    $document_с = phpQuery::newDocument($data_link);
    $content = $document_с->find('.td-post-content');

    $arr[] = array ( 
        "title" => $title
        );
}
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
person HP371    schedule 25.12.2019
comment
Это приведет только к одному заголовку в массиве. - person KIKO Software; 25.12.2019
comment
Спасибо, что предложили @KIKOSoftware, я обновлю свой ответ. - person HP371; 25.12.2019
comment
Вам все еще нужно поместить эхо вне цикла foreach. - person KIKO Software; 25.12.2019
comment
Да, это могло бы сработать, но я бы инициировал массив: $arr = []; (необязательно). - person KIKO Software; 25.12.2019