Operar con los valores de un array bidimensional.
Resumen.
Como ya dijimos en su momento, un array es un tipo de variable que contiene un conjunto de valores. Un array consta de dos partes, la key o clave, y el value o valor. Pues bien, el value puede ser una variable de cualquier tipo, incluido el tipo array, siendo este el tipo de array al que nos referimos cuando hablamos de array bidimensional. En este artículo veremos como operar con arrays de este tipo con valores numéricos.Artículo.
Como ya se vio en su momento, las variables tipo array son tremendamente versátiles, también vimos como para manipular este tipo de variables tenemos que actuar sobre cada uno de sus elementos, lo que hacemos a través de los bucles si es que no tenemos una función nativa que responda a nuestras necesidades.
Pues bien, supongamos que tenemos el siguiente array:
Vamos al caso que nos ataña, veremos como sumar todos los valores de un array bidimensional, obtener la suma de cada subarray y como sumar los subarrays. Para hacer esto hemos elegido el bucle FOREACH, el código seria el siguiente:
Pues bien, supongamos que tenemos el siguiente array:
Dado que la variable $array_numeros tiene como values $ar_numA, $ar_numB y $ar_numC, y estos a su vez tienen valores tipo numérico, decimos que estamos ante un array bidimensional. Si estos valores, en lugar de ser de tipo numérico fueran a su vez otros arrays, hablaríamos de array multidimensional. Hecha esta aclaración vamos al asunto, como obtener, por ejemplo la suma de todo el array $array_numeros o simplemente de un subarray, como por ejemplo $ar_numB. Este tipo de array es muy común, cuando por ejemplo extraemos datos de una BD como aquí se explica en el caso de las filas.$array_numeros = array( $ar_numA = array(2,4,5), $ar_numB = array(-3,1,5,8,-2), $ar_numC = array(6,-8,4,9) );
Vamos al caso que nos ataña, veremos como sumar todos los valores de un array bidimensional, obtener la suma de cada subarray y como sumar los subarrays. Para hacer esto hemos elegido el bucle FOREACH, el código seria el siguiente:
Y con esto, ya tenemos un esquema básico que nos ayudará ha realizar acciones sobre los arrays bidimensionales, que también son denominados multidimensionales, aunque yo prefiero este último termino para los arrays de mas de dos dimensiones.<?php // Sumamos un array bidimensional y cada unos de los subarrays $array_numeros = array( $ar_numA = array(2,4,5), $ar_numB = array(-3,1,5,8,-2), $ar_numC = array(6,-8,4,9) ); $nsub = count($array_numeros); echo "Numero de SubArray: $nsub <br />"; foreach($array_numeros as $key => $subArray){ $nArray[$key] = count($subArray); foreach ($subArray as $id => $value){ @$sumaArray[$id] += $value; } } $suma_arraysuma = array_sum($sumaArray); echo '<pre>'; print_r($array_numeros); echo '</pre>'; echo "<H3>Obtenemos un array con la suma de los subarray</H3>"; echo "N de los SubArray<br />"; echo '<pre>'; print_r($nArray); echo '</pre>'; echo "Suma de los SubArray<br />"; echo '<pre>'; print_r($sumaArray); echo '</pre>'; echo "Suma del array: $suma_arraysuma <br />"; echo "<H3>Obtenemos un array con la suma de los elementos de cada subarray</H3>"; foreach($array_numeros as $key => $value){ for ($x = 0; $x < $nsub; $x++){ @$SubArray = array_sum($array_numeros[$x]); $sub_array[$x] = $SubArray; // Creamos el nuevo array // echo "$SubArray <br />"; // Imprimimos bucle } } $suma_sub_array = array_sum($sub_array); echo "Suma de cada SubArray<br />"; echo '<pre>'; print_r($sub_array); echo '</pre>'; echo "Suma de todos los SubArray: $suma_sub_array <br />"; ?>
Tags: Bidimensional || multidimensional || foreach || script