Last active
August 29, 2015 13:56
-
-
Save devmatheus/9228711 to your computer and use it in GitHub Desktop.
array_replace
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?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