PHP как удалить ключ из многомерного массива? - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу удалить ключ 1 из массива PHP.Я знаю, как добиться этого с помощью цикла foreach, но я хочу array_filter решение.Кто-нибудь знает, как можно добиться этого с помощью метода фильтра массива?

Массив PHP:

Array (
    [0] => Array
        (
            [0] => 5000
            [1] => 25
            [2] => 44
        )

    [1] => Array
        (
            [0] => 5000
            [1] => 25
            [2] => 48
        )

    [2] => Array
        (
            [0] => 5000
            [1] => 26
            [2] => 44
        )

    [3] => Array
        (
            [0] => 5000
            [1] => 26
            [2] => 48
        )

)

Ожидаемый результат:

Array
(
    [0] => Array
        (
            [0] => 5000
            [1] => 44
        )

    [1] => Array
        (
            [0] => 5000
            [1] => 48
        )

    [2] => Array
        (
            [0] => 5000
            [1] => 44
        )

    [3] => Array
        (
            [0] => 5000
            [1] => 48
        )

)

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вы не можете использовать array_filter для этого.array_filter обрабатывает значения, но вы хотите удалить определенный ключ.

Используйте array_splice(), чтобы удалить индекс, и отрегулируйте все следующие приращения.

foreach ($array as &$element) {
    array_splice($element, 1, 1);
}

&делает его ссылочной переменной, поэтому изменение переменной влияет на элементы в массиве.

0 голосов
/ 18 сентября 2018

Вы не можете использовать array_filter() для этой цели. Используйте array_reduce() вместо

$newArr = array_reduce($array, function($carry, $item){
    $carry[] = [$item[0], $item[2]];
    return $carry;
});

Результат проверки в демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...