PHP中打印矩阵;找其对大值,以及位置;数组之和;对角线之和

这篇博客介绍了如何在PHP中操作矩阵,包括打印4*4的矩阵、查找矩阵中的最大值及其位置、计算数组的总和以及对角线元素的总和。在打印矩阵时,使用了双层for循环,并通过变量count与数组配合。找到最大值时,结合array_combine()和max()函数确定最大值及其坐标。计算数组和时运用了array_sum()函数,而对角线和的计算则涉及if判断和for循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
笔记本倒数第二页有做前思路剖析

分析

打印矩阵(4*4)

  • 打印正方形,用到双层for循环**
  • 定义count,(要调用数组里的值,打印矩阵;因此如果只是用for循环里的变量,是不行的,所以在这里需要再定一个变量count 用它调用array
  • count++ 的位置在第二个for循环里,还必须在echo 后面(为什么这个要单独强调呢?因为他的位置决定了接下来调用的数组的值,所以不能出错;为什么要放在echo后面呢?因为要照顾第一个值‘0’,如果放在echo前面的话那么第一个值就是‘1’了,‘0’就取不到了)
  • 根据count调用array(根据key调用value)

找其对大值,以及位置

  • 这里的位置我用的是坐标来表示的,如果要实现这个效果就得用到for其实也可以foreach也可以用while,个人爱好啦。
  • 要在这里不迷糊,就得知道双层for循环的运行规律(优先运行内层循环)
  • 之后就是合成带有位置的数组了,array_combine()作用:合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组元素为键值(菜鸟教程有详细教程)
  • max():返回数组对大值(min ():返回数组对小值)
  • 利用value找到其对应的key;这个可以用函数array_search(),强调‘在这里要强制转换为字符串strval()’

数组之和

  • array_sum():返回数组之和

对角线之和

  • 在这里最重要就是算式,也就是要用if判断
  • 同样需要for循环遍历(这不是重点)
  • array_sum():返回数组之和(也不是重点)

代码

<!--
	1、生成带有位置的数组,求出最大值,以及所在的位置
	2、数组打印正方形
	3、对角线之和
	4、数组中最大值
	5、数组之和
-->
<?php 
function Demo1(){//生成带有位置的数组,求出最大值,以及所在的位置
	$array = [34,56,78,89,76,54,32,41,90,93,88,76,70,40,97,32];
	$one = [1,2,3,4];
	for ($j=1; $j <5 ; $j++) {   //合成key
		for($i=0;$i<count($one);$i++){
				$a[] =  $j.','.$one[$i];//创建的新数组(key)
			}
	}
	$new_array = array_combine($a, $array);//带有位置的数组
	$max = max($array);//对大值
	$max_new_array = strval(array_search($max, $new_array));//最大值的位置
	echo '对大值:'.$max.'&nbsp以及相应的位置:' .$max_new_array;

	
}

function Demo2(){//数组打印正方形
	$array = [34,56,78,89,76,54,32,41,90,93,88,76,70,40,97,32];
	$count =0;//调用
	for($j=1;$j<=4;$j++){  //行
	    for($k=0;$k<=3;$k++){  //列
	    	echo $array[$count].'&nbsp'; 
	    	$count++;

	    }
     echo '<br>';
    }

}

function Demo3(){//对角线之和
	$array = [34,56,78,89,76,54,32,41,90,93,88,76,70,40,97,32];
	$count=0;
	for ($i=0; $i <count($array) ; $i++) { 
		if($i%5==0){//生成0,5,10,15
			$dui[] = $array[$i];//调用key,返回value
		}
	}
	$sum_dui=array_sum($dui);
	echo '对角线之和:';
	print_r($sum_dui);

}

function Demo4(){//数组中最大值
	$array = [34,56,78,89,76,54,32,41,90,93,88,76,70,40,97,32];
	$max = max($array);
	echo $max;
}

function Demo5(){//数组之和
	$array = [34,56,78,89,76,54,32,41,90,93,88,76,70,40,97,32];
	$sum = array_sum($array);
	echo '数组之和:'.$sum;
}

echo Demo2();//矩阵
echo '<hr>';
echo Demo1().'<br>';//对大值,以及位置
echo Demo5().'<br>';//数组之和
echo Demo3();//对角线之和

	
 ?> 
 

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值