Я пытаюсь закодировать сайт, который берет комментарии страницы Reddit и показывает их. Тем не менее, комментарии имеют ответы, и я хочу показать их тоже, но комментарий не может иметь ни одного, один или несколько ответов, и эти ответы могут иметь ответы. Есть ли способ повторить один и тот же код для всех ответов с небольшими отличиями (отступ)? Я использую функцию reddit json и получаю JSON примерно так: https://www.reddit.com/r/pcmasterrace/comments/dln0o3/foldinghome_and_pcmr_team_up_use_your_pc_to_help/.json. У меня есть:
$url = ('https://www.reddit.com/r/pcmasterrace/comments/dln0o3/foldinghome_and_pcmr_team_up_use_your_pc_to_help/.json');
$json = file_get_contents($url);
$obj = json_decode($json, true);
$comment_array = array_slice($obj[1]['data']['children'], 0, 50);
echo '<div class="comments">';
foreach ($comment_array as $c) {
echo "<p>(".$c['data']['author'].") ". $c['data']['score'] . " Points<br>".$c['data']['body']."</p>";
if (!($c['data']['replies'] == "")) {
$r1_array = $c['data']['replies']['data']['children'];
foreach ($r1_array as $r1) {
echo "<p> (".$r1['data']['author'].") ". $r1['data']['score'] . " Points<br> ".$r1['data']['body']."</p>";
if (!($r1['data']['replies'] == "")) {
$r2_array = $r1['data']['replies']['data']['children'];
foreach ($r2_array as $r2) {
echo "<p> (".$r2['data']['author'].") ". $r1['data']['score'] . " Points<br> ".$r2['data']['body']."</p>";
}
}
}
}
}
}
Это дает желаемый результат, с ответами на ответы и тому подобное. Однако, это немного грязно, и если есть действительно длинная цепочка ответов, она не поймает ее. Есть ли способ заставить его повторить как-то или я должен просто скопировать и вставить его несколько раз? Большое спасибо!