在循环中加入数组中的最多 3 个值

Joining up to 3 values in an array in a loop

我正在尝试 运行 一些逻辑测试并将字符串列表与数据库进行匹配,但需要有关我拥有的数组的帮助。

问题

我有一个数组:

$myArray =
array([0] (
   array [0] ([0] A, [1] B, [2] C, [3] H)
   array [1] ([0] A, [1] D, [2] G, [3] H, [4] L)
   array [2] ([0] D, [1] Z, [2] J, [3] K, [4] O, [5] X)
)
array([1] (
   array [2] ([0] F, [1] Y, [2] W, [3] H, [4] L)
)
array([2] (
   array [0] ([0] O, [1] T, [2] C, [4] O, [5] X)
   array [1] ([0] U, [1] E, [2] E, [3] D)
))

我正在尝试根据一个列表测试此数组中的字符串,该列表将 1、2 和 3 个字符串与 table 中的“_”组合在一起。
示例:A 或 A_B 或 A_B_C

变量和常量

我正在尝试做什么和期望的结果

我需要数组语法方面的帮助,以帮助我将代码构建为循环中的 3 级逻辑参数

像这样:
如果 A_B_C 存在于 myTable 中,则做某事
ELSE IF A_B 存在做其他事情
ELSE IF A 存在做另一件事
ELSE return 空白

不过我不太明白如何操作上面的数组以获得变量

$firstTest = 'A_B_C'; <br>
$secondTest = 'A_B'; <br>
$thirdTest = 'A'; <br>

(我能考到第三次)

我试过的

通过在其他数组问题上获得一些有用的帮助,我尝试通过 foreach 循环传递 $myArray,如下所示:

foreach ($myArray as $newArray) {
$i = 0;
$j = $i++;

foreach($newArray as $key=>$val) {
    $impArray = array($val[$i],$val[$j]);
    echo implode('_', $impArray);
}
}

然而,这需要每个第一级数组的第一个字符串。

编辑:

我一直在试验 array_slice 并做了一段时间,几乎可以到达那里,但模式并不完全遵循 3x 字符串组合;相反,它从 3 串增加到 4 串,再到 5 串等等......我不知道为什么。

这是我最近的尝试:

foreach ($myArray as $newArray => $val) {
    $x = 0;
    $z = 3;
    $route = array();
    
    do  {

        $route = array_slice($val, $x , $z);
        $imp_route = implode('_', $route);
        echo $imp_route;
        $x++;
        $z++;
    } while ( $z <= count($val));
}

也许有更好的方法,但这种方法可以清楚地说明您要完成的任务:

foreach ($myArray as $newArray) {
    foreach ($newArray as $valuesArray) {
        for ($i=0; $i<count($valuesArray); $i++) {
            // A_B_C
            if (isset($valuesArray[$i+2])) {
                echo $valuesArray[$i] . '_' . $valuesArray[$i+1] . '_' . $valuesArray[$i+2];
            }
            // A_B
            if (isset($valuesArray[$i+1])) {
                echo $valuesArray[$i] . '_' . $valuesArray[$i+1];
            }
            // A
            echo $valuesArray[$i];
        }
    }
}