Maison >développement back-end >Problème PHP >Utilisez-vous array_sum pour additionner des tableaux à deux dimensions en PHP ?
Il n'est pas possible d'utiliser uniquement array_sum() pour additionner des tableaux à deux dimensions en php, car la fonction array_sum() ne traite que des tableaux à une dimension ; si vous souhaitez utiliser array_sum() pour implémenter une somme de tableau à deux dimensions, vous devez également utiliser l'instruction foreach, la syntaxe " $sum=0;foreach($arr as $v){if(is_array($v)){$sum+=array_sum($v);}else{$sum+= $v;}}".
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur DELL G3
Le tableau bidimensionnel PHP ne peut pas être additionné en utilisant uniquement array_sum().
Cause : La fonction array_sum() ne traite que les tableaux unidimensionnels et n'est pas valide pour les tableaux multidimensionnels.
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(1,2,3,array(4,5,6),7,8,array(9,10)); var_dump($arr); $sum=array_sum($arr); echo "二维数组的和为:".$sum; ?>
Le résultat du calcul est évidemment faux. Il ne compte que la somme des éléments extérieurs.
Alors comment utiliser la fonction array_sum() pour calculer la somme des éléments d'un tableau à deux dimensions ?
Solution : fonction array_sum() + instruction foreach
Étapes de sommation
Étape 1. Utilisez l'instruction foreach pour parcourir les éléments externes du tableau à deux dimensions
foreach($arr as $v){ //循环体代码 }
Traverse à un certain tableau $arr et attribuez la valeur du tableau externe actuel à $v dans chaque boucle.
Étape 2. Dans le corps de la boucle, utilisez la fonction is_array() pour déterminer si l'élément externe est de type tableau, et utilisez l'opérateur "+=" pour additionner
S'il ne s'agit pas d'un type de tableau, ce ne sera pas Ajouter et additionner les éléments externes
S'il s'agit d'un type de tableau, utilisez la fonction array_sum() pour calculer la somme de tous les éléments du tableau interne et ajoutez-la à la somme des éléments extérieurs.
if(is_array($v)){ $sum+=array_sum($v); }else{ $sum+=$v; }
IMPLIMENTATION CODE:
function f($arr){ $sum=0; foreach($arr as $v){ if(is_array($v)){ $sum+=array_sum($v); }else{ $sum+=$v; } } echo "二维数组的和为:".$sum."<br>"; }
Call la fonction ci-dessus
$arr = array(1,2,3,array(4,5,6),7,8,array(9,10)); var_dump($arr); f($arr);
$arr = array(array(2,4,6),array(8,10,12)); var_dump($arr); f($arr);
romaine
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!