TransWikia.com

PHP mejorar una función con if

Stack Overflow en español Asked by Rocket on January 12, 2021

mi pregunta es la siguiente, deseo aprender a como agregar a un loop o a una funcion recursiva parametros avanzados como en el ejemplo siguiente:

Tengo varios if lo cual no es lo que busco pues los valores de $NumeroCaracteristicas son variables y pueden cambiar y solo se puede para 3 niveles, la idea es una función o loop que me permita agregar a la función get_array_path los valores dependiendo de la cantidad de $NumeroCaracteristicas,

for ($i = 0; $i <= $NumeroCaracteristicas - 1; $i++) {
        if ($i === 0) {
            $arrTextTemp[0] = get_array_path([], $output, false);
            $PrimerItem = current($arrTextTemp[0]);
        }
        if ($i === 1) {
            $arrTextTemp[1] = get_array_path([$PrimerItem], $output, false);
            sort($arrTextTemp[1]);
            $SegundoItem = current($arrTextTemp[1]);
        }
        if ($i === 2) {
            $arrTextTemp[2] = get_array_path([$PrimerItem, $SegundoItem], $output, false);
            sort($arrTextTemp[2]);
            //Y asi continuua cada if
        }
    }

Existe una posibilidad de hacerlo que no tenga que poner un if? puesto que necesito esa estructura para la función get_array_path

Mil gracias por la ayuda

One Answer

Para eliminar los if de tu código debes declarar algunas variables auxiliares que almacenen en cada loop del for (o de un while inclusive) los valores que quieres recoger.

El codigo propuesto es el siguiente:

$arrTextTemp = array();
$arrInputItems = array();

for ($i = 0; $i <= $NumeroCaracteristicas - 1; $i++) {
    
    $arrTextTemp[$i] = get_array_path($arrInputItems, $output, false); //Supongo que la funcion retorna algun array procesado
    sort($arrTextTemp[$i]); //se ordena el array
    $arrInputItems[] = current($arrTextTemp[$i]); //obtengo el valor y agrego al array
}

Seria interesante saber que es lo que retorna la funcion get_array_path, para evaluar el correcto uso de sort y current.

Espero que te haya sido de ayuda. :)

Correct answer by Ricardo Campos Villarroel on January 12, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP