Получить результат в квадратных скобках, внутри квадратных скобок

Пытаюсь из этого запроса получить, что внутри sourse, но не получается

{"success":true,"found":2,"result":[{"sources":["Edmodo"],"email_only":0,"line":"[email protected]:password1","last_breach":"2017-05"},{"sources":["Anijan"],"email_only":0,"line":"[email protected]:password","last_breach":"2019-11"}]}

Вот этим кодом,

$get = "{"success":true,"found":2,"result":[{"sources":["Edmodo"],"email_only":0,"line":"[email protected]:Cornwell24","last_breach":"2017-05"},{"sources":["Anijan"],"email_only":0,"line":"[email protected]:Cornwell24","last_breach":"2019-11"}]}";

for($i=0; $i<sizeof($get->result);$i++){
preg_match("/(.*):/", $get->result[$i]->line,$a);
$login = $a[1];
preg_match("/:(.*)/", $get->result[$i]->line,$b);
$pass = $b[1];

preg_match("/\[(.*)\]/",$get->result[$i]->sources,$c);
$base = $c[1];
}

Получить, что внутри line получилось, а вот что внутри source - нет, как можно это решить?


Ответы (2 шт):

Автор решения: Алексей Шиманский
$decodedData = json_decode($data, true)['result'];
foreach($decodedData as $element) {
    echo $element['line'] . "<br>";
    print_r($element['sources']);
}
→ Ссылка
Автор решения: Starik

Вот так можно получить массив записей, состоящих их line и sources:

$results = json_decode($get)->result;
$cleanData = [];
foreach ($results as $result) {
    $cleanData[] = [
        'line' => $result->line,
        'sources' => $result->sources[0],
    ];
}

Результат получится таким:

[
    [
        'line' => '[email protected]:password1',
        'sources' => 'Edmodo'
    ],
    [
        'line' => '[email protected]:password',
        'sources' => 'Anijan'
    ]
]
→ Ссылка