Удалить ключи с ложными значениями из массива в PHP

У меня есть ассоциативный массив со всей стопкой значений true/false.

Я пытаюсь удалить все ключи, где значения false.

Итак, если массив

array(
  'key1' => true,
  'key2' => false,
  'key3' => false,
  'key4' => true
);

Я хочу закончить с

array(
  'key1' => true,
  'key4' => true
);

Как мне это сделать?

Ответы

Ответ 1

$array = array_filter(array(
    'key1' => true,
    'key2' => false,
    'key3' => false,
    'key4' => true
));

array_filter()

Ответ 2

for (x=0; x < array.count; x++)
{
     if (key.value == false)
     {
          unset($arr[x]);
     }
}

Просто psuedocode, поэтому, надеюсь, вы знаете, что я имею в виду.

Ответ 4

Arraydecleration (с использованием сокращенного массива PHP 5.4):

$arr = ['key1' => TRUE, 'key2' => FALSE, 'key3' => FALSE, 'key4' => TRUE];

Затем удалите все ключи и значения из массива, где value == FALSE (необязательно используйте строгое сравнение "===" ):

foreach ($arr as $key => $value)
    if ($value == FALSE)
        unset($arr[$key]);

Результаты поиска:

print_r($arr);

Эта последняя строка печатает "Массив ([key1] = > 1 [key4] = > 1)".