Entrada destacada

Como usar enums en Android, kotlin

Obtener sub arreglo con indices específicos en php




Existen varias funciones para obtener sub arreglos en php por ejemplo array_slice(), que devuelve la parte del arreglo entre dos posiciones, por ejemplo:

1
2
3
4
5
6
<?php

$entrada = array(1, 2, 3, 4, 5);
$salida = array_slice($entrada, 0, 3);

?>

Devuelve:

[1, 2, 3]

O array_such() que devuelve el arreglo dividido en partes según el número de elementos por división se le indique, entre otras funciones que nos ayudan a subdividir arreglos.

En este ejemplo se presenta una función para obtener un sub arreglo pero que esté conformado con solo los valores de los indices que le indiquemos.
Supongamos que tenemos el siguiente arreglo.

$entrada = array('Nombre' => "Raquel", 'Edad' => 22, 'Telefono' => 1111111111);

y lo que queremos es obtener arreglo que contenga solo los valores de nombre y teléfono tendremos  que usar una combinación de funciones de php tales como:
array_filter(), para filtrar los valores del arreglo de entrada y in_array() para determinar que valor sera devuelto según se indique en un arreglo de indices requeridos.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php 
                
/**
 * Obtiene un sub arreglo con los valores de los indices indicados
 * @param bool $Datos       :Arreglo de datos
 * @param bool $Indices     :Arreglo de indices requeridos
 * @return array            :Sub Arreglo
 */
 function subArrayPorIndices($Datos = false, $Indices = false){
    if($Datos == true and $Indices == true){
        return array_filter($Datos, function ($Indice) use ($Indices){
            return in_array($Indice, $Indices);
        }, ARRAY_FILTER_USE_KEY );
    }
}

$salida = subArrayPorIndices($entrada, array('Nombre', 'Telefono'));

?>

Comentarios