Bloco de Matriz
Usando array chunk (array_chunk
) podemos facilmente dividir um array em um array multidimensional (um array de arrays).
A função array chunk pode ser usada para dividir um array em partes menores, talvez para torná-lo mais fácil de processar.
Exemplo básico
Supondo que configuramos um array conforme o exemplo de código abaixo ($array
na linha 1), podemos fragmentar esse array em um novo array multidimensional usando a array_chunk
função na linha 9.
A execução desse código resultaria na matriz multidimensional na linha 15.
Composição
$chunked_array = array_chunk( $array, $chunk, $preserve_keys );
A array_chunk
função aceita três parâmetros, $array
e $chunk
( $preserve_keys
opcional, falso por padrão). Estes são os seguintes:
- O
$array
parâmetro aceita um array e é o array inicial que desejamos transformar. - O
$chunk
aceita um inteiro, e é o número que usamos para dividir$array
em partes desse valor. - O parâmetro opcional
$preserve_keys
aceita um booleano e preservará as chaves do array setrue
.
Recursos e exemplos específicos
Preservar chaves
Explorando o $preserve_keys
parâmetro, nosso exemplo anterior inicia o índice de cada array aninhado em 0. No entanto, se passarmos true
para este parâmetro, o índice original do array inicial seria mantido intacto:
Na saída, as chaves agora são sequenciais, como seriam no array original (0, 1, 2, 3…).
Preservar chaves quando a matriz original tiver chaves nomeadas
Se nosso array original tiver chaves nomeadas, podemos preservar as chaves para mantê-las em nosso array em partes.
O exemplo a seguir tem um pouco de diversão com isso. Digamos que temos de alguma forma um array com alguns Post IDs e Post Names misturados.
Poderíamos usar array_chunk
com o $preserve_keys
parâmetro definido como true
para dividi-los em postagens individuais.
Ainda nos divertindo com esse array, vamos imaginar como poderíamos fazer um loop pelo $chunked_array
, e produzir apenas os nomes.
Chunking uma grande matriz para processamento.
Se tivermos uma matriz muito grande, podemos array_chunk
dividi-la em pedaços menores que poderíamos armazenar separadamente. Vamos ver como podemos fazer isso no WordPress:
Leitura adicional
Para mais leitura você pode verificar o manual do PHP.