Ответ 1
$array = array_filter(array(
'key1' => true,
'key2' => false,
'key3' => false,
'key4' => true
));
У меня есть ассоциативный массив со всей стопкой значений true
/false
.
Я пытаюсь удалить все ключи, где значения false
.
Итак, если массив
array(
'key1' => true,
'key2' => false,
'key3' => false,
'key4' => true
);
Я хочу закончить с
array(
'key1' => true,
'key4' => true
);
Как мне это сделать?
$array = array_filter(array(
'key1' => true,
'key2' => false,
'key3' => false,
'key4' => true
));
for (x=0; x < array.count; x++)
{
if (key.value == false)
{
unset($arr[x]);
}
}
Просто psuedocode, поэтому, надеюсь, вы знаете, что я имею в виду.
см. http://www.php.net/manual/en/function.unset.php, объедините это с foreach, и у вас есть то, что вам нужно.
также см. http://www.php.net/manual/en/function.array-filter.php
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)".