2010-05-31 3 views
4

Есть ли по умолчанию функция очистить только значения массива. Для бывших обр {10,3,3,34,56,12} до обр {0,0,0,0,0,0}PHP массив ясно

ответ

8
$array = array_combine(array_keys($array), array_fill(0, count($array), 0)); 

Альтернатива:

$array = array_map(create_function('', 'return 0;'), $array); 
1
$array = array_fill(0, count($array), 0); 

Это создает массив исходной своего размера заполненный нулями.

+2

Хотя ОП не сказал этого, я предполагаю, что ключи могут быть не постоянными числовыми. Это решение уничтожит ключи. – deceze

+0

Приведенный выше код работает для вашего примера (неассоциативный массив). Если вы хотите сохранить ключи, решение deceze корректно. –

3

Чтобы ответить на исходный вопрос: Нет, нет никакого по умолчанию PHP функция для этого. Тем не менее, вы можете попробовать некоторые комбинации других функций, описанных другими парнями. Тем не менее, я нахожу следующий фрагмент кода более читаемым:

$numbers = Array("a" => "1", "b" => 2, "c" => 3); 

foreach ($numbers as &$number) { 
    $number = 0; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^