php

Iterar elementos de una matriz sin bucles

Last updated: 28.08.2025
Views: 120

Los ejemplos son muy abstractos debido a que hay ciclos. Nuestra condición será la siguiente: es necesario seleccionar todos los elementos del array mediante un atributo dado. O, dicho de forma más precisa, es necesario filtrar el array. Existen varias soluciones.

La opción más adecuada en PHP es usar la función integrada array_filter(). Imaginemos que esta tampoco existe. La escribimos mediante recursión.

En PHP, la función se ve así:

PHP

function getArrayElements($arr, $pattern) {
    static $i = 0;
    static $arrayResult = [];

    if (preg_match($pattern, $arr[$i])) {
        $arrayResult[] = $arr[$i];
    }

    $i++;

    if (count($arr) == $i) {
        return;
    } else {
        getArrayElements($arr, $pattern);
    }
    return $arrayResult;
}

Ejemplo:

PHP

$arr = ['a', 'xd', 'w', 1, 'y', 'x'];
$pattern = '/^x/';
print_r(getArrayElements($arr, $pattern)); // Array ( [0] => xd [1] => x )

Ahora veamos lo mismo en JavaScript. En JS, un array tiene un método filter() similar. Intentemos prescindir de él y usar la recursión.

JavaScript

let i = 0,
    arrayResult = [];
 
function getArrayElements(arr, pattern) {
    if (pattern.test(arr[i])) {
        arrayResult.push(arr[i]);
    }

    i++;

    if (arr.length == i) {
        return;
    } else {
        getArrayElements(arr, pattern);
    }
    return arrayResult;
}

Ejemplo:

JavaScript

const arr = ['a', 'xd', 'w', 1, 'y', 'x'],
      pattern = /^x/;

console.log(getArrayElements(arr, pattern)); //["xd", "x"]
author
Autor: Igor Rybalko
He estado trabajando como desarrollador front-end desde 2014. Mi principal pila tecnológica es Vue.js y WordPress.

Publicaciones similares:

Leave a Reply

Your email address will not be published. Required fields are marked *