Привет, мой вопрос немного сложен, я получил 3-мерный массив и попытался проверить значение 3-го уровня и повторить значения 1-го и 3-го уровня.
Ниже приведен пример кода, и мои неудачные подходы.
$myArray=array(
"mySub0" => arrary(
0 => array("mySubSub0" => "1","mySubSub1" => "a"),
1 => array("mySubSub0" => "2","mySubSub1" => "b"),
2 => array("mySubSub0" => "3","mySubSub1" => "b"),
),
"mySub1" => arrary(
0 => array("mySubSub0" => "4","mySubSub1" => "a"),
1 => array("mySubSub0" => "5","mySubSub1" => "a"),
2 => array("mySubSub0" => "6","mySubSub1" => "a"),
),
"mySub2" => arrary(
0 => array("mySubSub0" => "7","mySubSub1" => "a"),
1 => array("mySubSub0" => "8","mySubSub1" => "b"),
2 => array("mySubSub0" => "9","mySubSub1" => "a"),
),
),
Я хочу проверить, является ли значение mySubSub1 b. если да, отобразите значение «mySubSub0» и связанный ключ на первом уровне массива. Должно быть так:
mySub0
2
3
mySub2
8
Мой неудачный подход
foreach ($myArray as $a => $b)
{
foreach ($b as $c)
if($c[mySubSub1]=="b")
{
echo $a
echo $c[mySubSub0];
}
else {
}
}
В результате будет один дубликат mySub0
mySub0
2
mySub0
3
mySub2
8
если я уберу "echo $ a" из "если"
foreach ($myArray as $a => $b)
{
echo $a
foreach ($b as $c)
if($c[mySubSub1]=="b")
{
echo $c[mySubSub0];
}
else {
}
}
результат будет
mySub0
2
3
mySub1
mySub2
8
один нежелательный «mySub1», потому что негде проверить, есть ли значение b.
Это очень беспокоило меня сегодня. Я пытался Google, но не нашел правильный ответ.
Очень надеюсь, что кто-то может мне помочь. Заранее спасибо