使用带有3个数组的PHP Foreach

使用带有3个数组的PHP Foreach,php,foreach,Php,Foreach,我从一个站点获取数据,如下面的代码所示。在一个foreach循环中可以使用3个数组吗 我尝试了太多的代码片段,但还没有找到解决方案 这是我的正常代码: <?php $i = 0; $url = file_get_contents("xxx"); $display = '#{"__typename":"GraphImage","id":"(.*?)","edge_media_to_caption":{"edges":\[{"node":{"text":"(.*?)"}}]},"shortc

我从一个站点获取数据,如下面的代码所示。在一个foreach循环中可以使用3个数组吗

我尝试了太多的代码片段,但还没有找到解决方案

这是我的正常代码:

<?php
$i = 0;
$url = file_get_contents("xxx");

$display = '#{"__typename":"GraphImage","id":"(.*?)","edge_media_to_caption":{"edges":\[{"node":{"text":"(.*?)"}}]},"shortcode":"(.*?)","edge_media_to_comment":{"count":(.*?)},"comments_disabled":(.*?),"taken_at_timestamp":(.*?),"dimensions":{"height":(.*?),"width":(.*?)},"display_url":"(.*?)","edge_liked_by":{"count":(.*?)},"edge_media_preview_like":{"count":(.*?)},"location":(.*?),"gating_info":(.*?),"media_preview":"(.*?)","owner":{"id":"(.*?)","username":"(.*?)"}#i';

preg_match_all($display, $url, $dop);

foreach ($dop[1] as $displayop1) {
    echo $displayop1."<p>";
}

foreach ($dop[9] as $displayop2) {
    echo $displayop2."<p>";
}

foreach ($dop[15] as $displayop3) {
    $i++;
    if($i == 2) {break;}
    echo $displayop3."<p>";
}
我试过了

<?php

foreach ($dop[1] as $displayop1) {
    foreach ($dop[9] as $displayop2) {
        foreach ($dop[15] as $displayop3) {
            echo $displayop1 . "<p>";

            echo $displayop2 . "<p>";

            $i++;
            if ($i == 2) {
                break;
            }
            echo $displayop3 . "<p>";
        }
    }
}

?>

<?php
foreach (array_combine($dop[1], $dop[9], $dop[15]) as $dop1 => $dop2 => $dop3) {
    echo $dop1.$dop2.$dop3;
}
?>
这些代码不起作用


有人能帮我吗?我搜索了很多解决方案,但找不到任何信息。我不知道如何在互联网上搜索,因为我的英语不是很好,谢谢。

我看到的最接近单个循环的选项是2:

    for($i=1; $i < 15; $i++) {
    //you can do a if statement here if you need 1 9 and 15 respectivley 
    foreach ($dop[$i] as $displayop) {

    }
}

预期的输出是什么?@Nik我想要的是使用一个循环,而不是使用3个循环。如果数组的长度相同,您可以使用$I=0$我<$count$i++{}循环并打印像echo$dop[1][$i]这样的数组项;真的那么容易吗?非常感谢你。。与if.合作得很好。。拍手拍手