Php 打印值​;在数组包含可变部分的索引中

Php 打印值​;在数组包含可变部分的索引中,php,arrays,loops,Php,Arrays,Loops,这是我的阵列: $arr = [ // fisrt part [ '1' => 'one', '2' => 'two', '3' => 'three', 'completedLanguages' => [ 0 => 'cpp', 1 => 'javascript', ], ], // sec

这是我的阵列:

$arr = [
    
    // fisrt part
    [
        '1' => 'one',
        '2' => 'two',
        '3' => 'three',
        'completedLanguages' => [
            0 => 'cpp',
            1 => 'javascript',
        ],
    ],

    // second part
    [
        '4' => 'four',
        '5' => 'five',
        '6' => 'six',
        'completedLanguages' => [
            0 => 'php',
            1 => 'python',
            2 => 'go',
        ],
    ],

    // third part
    [
        '7' => 'seven',
        '8' => 'eight',
        '9' => 'nine',
        'completedLanguages' => [
            0 => 'csharp',
            1 => 'vb',
            2 => 'rust',
            3 => 'scala',
        ],
    ],
];
在这三个部分中,每一部分都有一个名为“completedLanguages”的索引

completedLanguages
索引中,可能有许多变量值​​每一次

我想一个接一个地进入各个部分并打印所有的值​​在他们的
完整语言中
索引。最后,如果打印了所有的值,我将转到下一部分,直到打印
completedLanguages
索引值​​所有的部分

为了更好地理解,请查看以下循环:

for ($i = 0; $i <= count($arr[0]['completedLanguages']) - 1; $i++) {
    echo $arr[0]['completedLanguages'][$i] . '<br>';
}

对于($i=0;$i单向,使用2个foreach循环,如下所示

首先循环所有外部事件,然后为每个外部事件循环特定的内部事件
completedLanguages

$savedLangs = []
foreach ($arr as $a){
    $langs = '';    // init the string
    foreach ($a['completedLanguages'] as $lang){
        echo $lang;
        // or save the values in another array
        $langs .= $lang . ', ';    // save each lang in a string
    }
    $savedLangs[] = trim($langs, ', ');
}

一种方法,使用2个这样的foreach循环

首先循环所有外部事件,然后为每个外部事件循环特定的内部事件
completedLanguages

$savedLangs = []
foreach ($arr as $a){
    $langs = '';    // init the string
    foreach ($a['completedLanguages'] as $lang){
        echo $lang;
        // or save the values in another array
        $langs .= $lang . ', ';    // save each lang in a string
    }
    $savedLangs[] = trim($langs, ', ');
}

这里需要两个循环,第一个循环部分,第二个循环完整的语言

for ($i = 0; $i <= count($arr); $i++) {
  if(!isset($arr[$i]['completedLanguages'])) continue;
  for ($j = 0; $j <= count($arr[$i]['completedLanguages']); $j++) {
    echo $arr[$i]['completedLanguages'][$j] . '<br>';
  }
}

对于($i=0;$i您在这里需要两个循环,第一个循环部分,第二个循环完整的语言

for ($i = 0; $i <= count($arr); $i++) {
  if(!isset($arr[$i]['completedLanguages'])) continue;
  for ($j = 0; $j <= count($arr[$i]['completedLanguages']); $j++) {
    echo $arr[$i]['completedLanguages'][$j] . '<br>';
  }
}

用于($i=0;$i您想在
中使用循环而不是
。另请参阅@BadHorsie我想将结果保存在具有不同索引的变量中。我可以使用foreach吗?您想在
中使用循环而不是
。另请参阅@BadHorsie我想在具有不同索引的变量中保存结果。我可以使用foreach吗?如何保存值在数组的不同索引中,每个部分中每个已完成语言的大小。例如:$savedLang[0]将是cpp javascript$savedLang[1]这将是php python,开始吧,语言保存为每个事件的逗号分隔字符串如何将每个部分中的每个已完成语言的值保存在不同的数组索引中。例如:$savedLang[0]将是cpp javascript$savedLang[1]这将是php-python,开始吧,语言保存为一个逗号分隔的字符串