У меня есть следующий массивудалить пустой массив из многомерного массива
$cal = array(
0 => array(
0 => array(
0 => '*',
1 => 2,
2 => 3,
) ,
1 => array(
0 => 6,
1 => 7,
2 => 8,
3 => 9,
4 => 10,
) ,
2 => array(
0 => '*',
1 => '*',
2 => 15,
3 => '*',
4 => 17,
) ,
3 => array(
0 => 20,
1 => 21,
2 => 22,
3 => 23,
4 => 24,
) ,
4 => array(
0 => 27,
1 => 28,
2 => 29,
3 => 30,
4 => 31,
) ,
) ,
1 => array(
0 => array() ,
1 => array(
0 => 3,
1 => 4,
2 => 5,
3 => '*',
4 => 7,
) ,
2 => array(
0 => 10,
1 => 11,
2 => 12,
3 => 13,
4 => 14,
) ,
3 => array(
0 => 17,
1 => 18,
2 => 19,
3 => 20,
4 => 21,
) ,
4 => array(
0 => 24,
1 => 25,
2 => 26,
3 => 27,
4 => 28,
) ,
) ,
2 => array(
0 => array() ,
1 => array(
0 => 3,
1 => 4,
2 => 5,
3 => 6,
4 => '*',
) ,
2 => array(
0 => 10,
1 => 11,
2 => 12,
3 => 13,
4 => 14,
) ,
3 => array(
0 => 17,
1 => 18,
2 => 19,
3 => 20,
4 => 21,
) ,
4 => array(
0 => 24,
1 => 25,
2 => 26,
3 => 27,
4 => 28,
) ,
5 => array(
0 => 31,
) ,
) ,
3 => array(
0 => array(
0 => 1,
1 => 2,
2 => 3,
3 => 4,
) ,
1 => array(
0 => 7,
1 => 8,
2 => 9,
3 => 10,
4 => 11,
) ,
2 => array(
0 => 14,
1 => 15,
2 => 16,
3 => 17,
4 => 18,
) ,
3 => array(
0 => 21,
1 => 22,
2 => 23,
3 => 24,
4 => 25,
) ,
4 => array(
0 => 28,
1 => 29,
2 => 30,
) ,
) ,
4 => array(
0 => array(
0 => 1,
1 => 2,
) ,
1 => array(
0 => '*',
1 => '*',
2 => '*',
3 => 8,
4 => 9,
) ,
2 => array(
0 => 12,
1 => 13,
2 => 14,
3 => 15,
4 => 16,
) ,
3 => array(
0 => 19,
1 => 20,
2 => 21,
3 => 22,
4 => 23,
) ,
4 => array(
0 => 26,
1 => 27,
2 => 28,
3 => 29,
4 => 30,
) ,
) ,
5 => array(
0 => array() ,
1 => array(
0 => 3,
1 => '*',
2 => 5,
3 => 6,
) ,
2 => array(
0 => 9,
1 => 10,
2 => 11,
3 => 12,
4 => '*',
) ,
3 => array(
0 => 16,
1 => 17,
2 => 18,
3 => 19,
4 => 20,
) ,
4 => array(
0 => 23,
1 => 24,
2 => 25,
3 => 26,
4 => 27,
) ,
5 => array(
0 => 30,
) ,
) ,
6 => array(
0 => array(
0 => 1,
1 => 2,
2 => 3,
3 => 4,
) ,
1 => array(
0 => 7,
1 => 8,
2 => 9,
3 => 10,
4 => 11,
) ,
2 => array(
0 => 14,
1 => 15,
2 => 16,
3 => 17,
4 => 18,
) ,
3 => array(
0 => 21,
1 => 22,
2 => 23,
3 => 24,
4 => 25,
) ,
4 => array(
0 => 28,
1 => 29,
2 => 30,
3 => 31,
) ,
) ,
7 => array(
0 => array(
0 => 1,
) ,
1 => array(
0 => 4,
1 => 5,
2 => 6,
3 => 7,
4 => 8,
) ,
2 => array(
0 => 11,
1 => 12,
2 => 13,
3 => 14,
4 => 15,
) ,
3 => array(
0 => 18,
1 => 19,
2 => 20,
3 => 21,
4 => 22,
) ,
4 => array(
0 => 25,
1 => 26,
2 => 27,
3 => 28,
4 => 29,
) ,
5 => array() ,
) ,
8 => array(
0 => array(
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
) ,
1 => array(
0 => 8,
1 => 9,
2 => 10,
3 => 11,
4 => 12,
) ,
2 => array(
0 => 15,
1 => 16,
2 => 17,
3 => 18,
4 => 19,
) ,
3 => array(
0 => 22,
1 => 23,
2 => 24,
3 => 25,
4 => 26,
) ,
4 => array(
0 => 29,
1 => 30,
) ,
) ,
9 => array(
0 => array(
0 => 1,
1 => 2,
2 => 3,
) ,
1 => array(
0 => '*',
1 => '*',
2 => '*',
3 => '*',
4 => '*',
) ,
2 => array(
0 => '*',
1 => '*',
2 => '*',
3 => '*',
4 => '*',
) ,
3 => array(
0 => 20,
1 => 21,
2 => 22,
3 => 23,
4 => 24,
) ,
4 => array(
0 => 27,
1 => 28,
2 => 29,
3 => 30,
4 => 31,
) ,
) ,
10 => array(
0 => array() ,
1 => array(
0 => 3,
1 => '*',
2 => 5,
3 => 6,
4 => 7,
) ,
2 => array(
0 => 10,
1 => 11,
2 => 12,
3 => 13,
4 => 14,
) ,
3 => array(
0 => 17,
1 => 18,
2 => 19,
3 => 20,
4 => 21,
) ,
4 => array(
0 => 24,
1 => 25,
2 => 26,
3 => '*',
4 => 28,
) ,
5 => array() ,
) ,
11 => array(
0 => array(
0 => '*',
1 => 2,
2 => 3,
3 => 4,
4 => '*',
) ,
1 => array(
0 => 8,
1 => 9,
2 => 10,
3 => 11,
4 => 12,
) ,
2 => array(
0 => 15,
1 => 16,
2 => 17,
3 => 18,
4 => 19,
) ,
3 => array(
0 => 22,
1 => 23,
2 => 24,
3 => 25,
4 => 26,
) ,
4 => array(
0 => 29,
1 => 30,
2 => 31,
) ,
) ,
)
Я пытаюсь удалить пустой массив из его родительского используя следующий код:
for($m = 0; $m < count($cal); $m++){
for($w = 0; $w < count($cal[$m]); $w++){
if(empty($cal[$m][$w])){
array_shift($cal[$m]);
}
}
}
результат является (пожалуйста см индекс 10)
10 => array(
0 => array(
0 => 10,
1 => 11,
2 => 12,
3 => 13,
4 => 14,
) ,
1 => array(
0 => 17,
1 => 18,
2 => 19,
3 => 20,
4 => 21,
) ,
2 => array(
0 => 24,
1 => 25,
2 => 26,
3 => '*',
4 => 28,
) ,
3 => array() ,
) ,
, что я ожидаю Remo ve первый и последний, вместо этого удалите первый и второй массив и оставите последний массив еще там. Есть идеи?
'array_shift' удаляет элемент из начала массива – Exlord
array_shift удаляет (и возвратов) всегда первый элемент данного массива. Почему вместо этого вы не используете unset? – evilive
О, да, я забыл об этом, вместо использования array_shift я должен удалить массив по его индексу, я прав? –