Ассоциативный массив удаляет все значения 0 - PullRequest
0 голосов
/ 09 января 2020

У меня есть ассоциативный массив в PHP, и я хочу удалить все значения, связанные с которыми имеют значение 0

Array ( [item1] => 0 [item2] => 10 [item5] => 0 [item10] => 10 [item12] => 5 )

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Ну, есть много способов добиться этого, из которых два я упомянул ниже:

Фрагмент:

<?php

$arr = [
        'item1' => 0,
        'item2' => 10,
        'item5' => 0,
        'item10' => 10,
        'item12' => 5,
        'item120' => false,
    ];


$filtered = array_filter($arr,function($value){
    return $value !== 0;
});


print_r($filtered);

Демонстрация: https://3v4l.org/fMsHt

  • Другой способ, который я бы предложил, это использовать array_diff ()

Фрагмент:

<?php

$arr = [
        'item1' => 0,
        'item2' => 10,
        'item5' => 0,
        'item10' => 10,
        'item12' => 5,
        'item120' => false,
    ];


print_r(array_diff($arr,[0]));

Демо: https://3v4l.org/3YHiX

0 голосов
/ 09 января 2020

Вы можете сделать это просто используя array_filter

$data = Array ( 'item1' => 0 ,'item2' => 10, 'item5' => 0, 'item10' => 10, 'item12' => 5 );
 echo '<pre>';print_r(array_filter($data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...