Снять ключ массива, если значение пусто

Array
(
    [2] => Array
        (
            [option_id] => 2
            [price] => 15
            [processor] => Array
                (
                    [3] => Array
                        (
                            [processor_id] => 3
                            [price] => 15
                        )

                    [4] => Array
                        (
                            [processor_id] => 4
                            [price] => 15
                        )

                )

        )

    [3] => Array
        (
            [option_id] => 3
            [price] => 15
            [processor] => Array
                (
                    [3] => Array
                        (
                            [processor_id] => 3
                            [price] => 15
                        )

                    [4] => Array
                        (
                            [processor_id] => 4
                            [price] => 15
                        )

                )

        )

    [4] => Array
        (
            [processor] => Array
                (
                    [3] => Array
                        (
                            [price] => // empty value
                        )

                    [4] => Array
                        (
                            [price] => // empty value
                        )

                )

        )

)

У меня есть этот массив. Теперь я хочу отключить массив, массив которого не имеет никакого значения, например, в последнем массиве нет значения, поэтому я хочу отключить весь ключ массива.

В этом массиве у меня пустое значение, так как я могу отключить ключ [4]. Возможно ли это без цикла foreach.

сделайте это с помощью foreach и сделайте unset или array_splice

Jees K Denny 11.04.2018 13:30

Да, сделай это. что ты уже испробовал? Где возникла проблема? Вы можете описать эту проблему? В настоящее время вы просто просите кого-нибудь сделать вашу работу.

feeela 11.04.2018 13:33

Для этого нет встроенной функции, поэтому вам в конечном итоге придется использовать цикл (возможно, рекурсивный) тем или иным образом (скрытый или видимый). Вы что-нибудь пробовали?

Yoshi 11.04.2018 13:33

Спасибо @JeesKDenny, у меня есть решение с вашей идеей. Теперь все работает нормально.

Subhash Shipu 11.04.2018 13:39
0
4
58
1

Ответы 1

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

function filter_function($var) {
    // return an expression evaluating to true to keep value
    return ($var["option_id"]);
}

$filtered = array_filter($unfiltered, "filter_function");

Другие вопросы по теме