Skip to content

Instantly share code, notes, and snippets.

@devmatheus
Last active August 29, 2015 13:56
Show Gist options
  • Select an option

  • Save devmatheus/9228711 to your computer and use it in GitHub Desktop.

Select an option

Save devmatheus/9228711 to your computer and use it in GitHub Desktop.
array_replace
<?php
/**
* Preciso substituir todos os valores 'null' do array para 0
*/
$data = array(
'fusca' => null,
'gol' => null,
'voyage' => 2,
'tiguan' => 1
);
// Existem duas opções
/* Opção 01
* Faço iteração no array e uma comparação para cada valor assim substituo o valor para 0.
*/
foreach ($data as $i => $value) {
if (null === $value) {
$data[$i] = 0;
}
}
/* Opção 02
* Utilizo três funções do PHP para gerar o resultado.
* array_keys() - Retorna um array com as chaves do array passado e também aceita um parâmetro de comparação, no caso me retorna todas as chaves do array cujo o valor é null.
* array_fill_keys() - Retorna uma array cujo as chaves são os valores do array que você passou como parâmetro e preenche o array com o valor passado por parâmetro, no caso 0.
* array_replace() - Retorna um array substituindo o segundo array no primeiro, no caso você já buscou as chaves que tinham valores nulos e as preencheu com 0 então ele substitui todos os valores nulos.
*/
$data = array_replace($data, array_fill_keys(array_keys($data, null, true), 0));
/**
* As duas opções geram o mesmo resultado.
*
* Array
* (
* [fusca] => 0
* [gol] => 0
* [voyage] => 2
* [tiguan] => 1
* )
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment