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代码之美。