Limpiando arrays en Drupal 8

drupal 8 post.jpg
Solucionex
25
Sep 19

En muchas ocasiones en Drupal 8 nos vemos en la necesidad de "limpiar" un array para iterar sobre el mismo, por ejemplo, nos encontramos en ocasiones con arrays que en su clave cuentan con el carácter # al comienzo y queremos quedarnos únicamente los elementos que no tienen dicha almohadilla, para ello podemos hacer lo siguiente:

foreach (Element::children($questions) as $key) {
$question = $questions[$key];
}

de este modo logramos que en $question no haya ya elementos del array con clave #texto. En otras ocasiones necesitamos limpiar el array para quedarnos únicamente con los valores array numéricos del mismo, por ejemplo imaginemos que de primeras nos encontramos ante un array de este tipo:

$question[0];
$question[1];
$question[add_more];

Si queremos únicamente quedarnos con los numéricos podemos hacer lo siguiente:

// Quitar elementos no numéricos de un array
array_filter($questions, 'is_int', ARRAY_FILTER_USE_KEY);

Tras esto nos quedaría de este modo

$question[0];
$question[1];