php二维数组值怎么相乘
时间 : 2023-02-20 12:46:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
php 二维数组值相乘是指php 中两个二维数组中的值,交叉相乘,得出新的一个二维数组。
php 二维数组 乘法需要满足两个条件,一个是二维数组维度必须一致,另一个是二维数组中的值必须可以进行乘法运算。
实例:现有两个二维数组
$arr1 = array
(
array(1, 2, 3),
array(4, 5, 6),
array(7, 8, 9)
);
$arr2 = array
(
array(1, 2, 3),
array(4, 5, 6),
array(7, 8, 9)
);
要求,对$arr1和$arr2实现互乘,并得出一个新的二维数组。
可以通过两个for循环对$arr1和$arr2 实现乘法操作,并定义$arr3:
$arr3 = array();
$length = count($arr1);
for($i=0; $i<$length; $i++)
{
for($j=0; $j<$length; $j++)
{
$arr3[$i][$j] = $arr1[$i][$j] * $arr2[$i][$j];
}
}
运行后,$arr3的结果就是新的二维数组。
有时候,也需要对不同维度的二维数组进行乘法,这就需要使用矩阵乘积来实现,需要先确定两个二维数组的维度,如$arr1= 2×3维,$arr2 = 3×2维,那么$arr3 =2×2维,这样就可以实现乘法运算,代码如下:
//定义$arr1 & $arr2
$arr3 = array();
$row1 = count($arr1);
$col2 = count($arr2[0]);
for($i=0;$i<$row1;$i++)
{
for($j=0;$j<$col2;$j++)
{
$num = 0;
for($k=0;$k<count($arr2);$k++)
{
$num += $arr1[$i][$k]*$arr2[$k][$j];
}
$arr3[$i][$j] = $num;
}
}
以上程序中,$num就是乘积,$arr3就是最后得到的二维数组。
总之,php中可以通过使用for循
PHP 开发人员在处理数据时,想必他们都会遇到二维数组的情况,比如要求两个数组中的元素值想乘(*) 。笔者已经在网上找到一段开源的PHP代码,可以实现两个一维数组中的值相乘,如下:
```php
$a = [1, 2 ,3, 4];
$b = [4, 3, 2, 1];
$result = array_map(function ($n, $m) {
return $n * $m;
}, $a, $b);
print_r($result);
//Output: Array ( [0] => 4 [1] => 6 [2] => 6 [3] => 4 )
可以发现,这样写,是只针对某两个一维数组中的值相乘,但是如果是两个二维数组中的每一组内部元素值之间想乘呢。
那么,可以这样实现:
```php
//定义二维数组A,B
$a = [[1, 2], [3, 4]];
$b = [[4, 3], [2, 1]];
//定义返回的结果数组
$result = array();
//双重循环,依次得出每一组的值之间相乘的结果
for($i=0;$i<count($a);$i++){
for($j=0;$j<count($b[0]);$j++){
$result[$i][$j] = $a[$i][$j] * $b[$i][$j];
}
}
//将结果输出
print_r($result);
// Output:
// [[4,6],
//[6,4]];
以上即可实现两个二维数组中的每一组内部元素值之间相乘,很简单易懂,望大家踊跃提出宝贵意见,共赴PHP代码之美。
上一篇
php怎么样月薪3w
下一篇
php替换成正则怎么弄
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章