Se le da una array de n elementos en PHP. Debe separar los elementos de la array en función de si los elementos son pares o impares. Es decir, imprima una array impar y una array par por separado sin atravesar la array original ni usar ningún bucle .
Ejemplos:
Input : array(2, 5, 6, 3, 0) Output : Odd array: 5 , 3 Even array: 2, 6, 0 Input : $input = array(0, 1, 2, 3, 4, 5) Output : Odd array: 1, 3, 5 Even array: 0, 2, 4
Este tipo de problemas se pueden resolver fácilmente recorriendo la array e imprimiendo los elementos que son pares e impares por separado, pero eso requerirá más líneas de código y también una sobrecarga de bucle en nuestro código. Entonces, para evitar el uso de bucles, intentaremos usar algunas funciones incorporadas de PHP. Aquí estamos usando dos funciones de array de PHP array_filter() y array_values() para resolver este problema.
- array_filter() : esta función se usará para filtrar los elementos pares/impares de la array de entrada.
- array_values() : esta función se usará para volver a indexar la array par e impar como después de que array_filter la array par e impar tenga el mismo índice que sus elementos en la array de entrada.
Nota: La función array_filter() solo filtrará los elementos indexados pares/impares junto con su valor de índice. Después de aplicar la función array_filter(), el índice de la array impar será 1, 3, 5 y el de la array par será como 0, 2, 4.
Algoritmo:
- Filter elements :
- filter odd elements by array_filter().
- filter even elements by array_filter().
- Re-index Arrays :
- re-index odd-array by use of array_values().
- re-index even-array by use of array_values().
- Print both of the odd/even array.
A continuación se muestra la implementación de PHP del algoritmo anterior:
<?php // PHP program to separate odd-even indexed // elements of an array // input array $input = array(4, 3, 6, 5, 8, 7, 2); // comparator function to filter odd elements function oddCmp($input) { return ($input & 1); } // comparator function to filter odd elements function evenCmp($input) { return !($input & 1); } // filter odd-index elements $odd = array_filter($input, "oddCmp"); // filter even-index elements $even = array_filter($input, "evenCmp"); // re-index odd array by use of array_values() $odd = array_values(array_filter($odd)); // re-index even array by use of array_values() $even = array_values(array_filter($even)); // print odd-indexed array print"Odd array :\n"; print_r($odd); // print even-indexed array print"\nEven array :\n"; print_r($even); ?>
Producción :
Odd array : Array ( [0] => 3 [1] => 5 [2] => 7 ) Even array : Array ( [0] => 4 [1] => 6 [2] => 8 [3] => 2 )
Publicación traducida automáticamente
Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA