如何在PHP中使用数组


Posted in PHP onJune 09, 2020

1、PHP如何获取数组里元素的个数实例

在 PHP 中,使用 count()函数对数组中的元素个数进行统计。

例如,使用 count()函数统计数组元素的个数,示例代码如下:

<?php
header("Content-Type:text/html; charset=utf-8");
$arr = array("php","thinkphp","laravel");
echo count($arr);

输出结果为:

3

下面的一个实例将课程数据存放在数组中,使用 count()函数递归地统计数组中数量并输出,具体代码如下:

<?php
header("Content-Type:text/html; charset=utf-8");
$arr = array(
 "php"=>array("php","thinkphp","laravel"),
 "js"=>array("vue","react")
);
echo count($arr,true);

输出结果为:

7

注意:在统计二维数组时,如果直接使用 count()函数只会显示到一维数组的个数,所以使用递归的当时来统计二维数组的个数!

2、PHP怎么查询数组中的指定元素

array_search()函数在数组中搜索给定的值,找到后返回键值,否则返回 false 。在 PHP 4.2.0之前,函数在失败时返回 null 而不是 false。

下面实例综合应用数组函数,实现更新数组中的元素的值,具体示例代码如下:

<?php
header("Content-Type:text/html; charset=utf-8");

$names = "手表1@手表2@手表3@手表4";
$prices = "111@222@333@444";
$counts = "1@3@5@2";
$arrname = explode("@",$names); //['手表1','手表2','手表3','手表4']
$arrprice = explode("@",$prices); //['111','222','333','444']
$arrcount = explode("@",$counts); //['1','3','5','2']

if($_POST){
 $name = $_POST['name'];
 $count = $_POST['count'];
 $key= array_search($name, $arrname); //获取要更改的数据的键名
 $arrcount[$key] = $count; 
}

?>

<table width="500" birder="1" cellpadding="1" bordercolor="#fff" bgcolor="#c17e50">
 <tr>
  <td width="145" align="center" bgcolor="#fff">商品名</td>
  <td width="145" align="center" bgcolor="#fff">单价</td>
  <td width="145" align="center" bgcolor="#fff">数量</td>
  <td width="145" align="center" bgcolor="#fff">总价</td>
 </tr>
 <?php
 $sum = 0;
 for($i=0;$i<count($arrname);$i++){  
 ?>
 <form action="#" method="post" name="form-<?php echo $i; ?>">
  <tr>
   <td width="145" align="center" bgcolor="#fff"><?php echo $arrname[$i]; ?></td>
   <td width="145" align="center" bgcolor="#fff"><?php echo $arrprice[$i]; ?></td>
   <td width="145" align="center" bgcolor="#fff">
    <input type="text" name="count" id="count" value="<?php echo $arrcount[$i]; ?>" size="4">
    <input type="hidden" name="name" id="name" value="<?php echo $arrname[$i]; ?>">
    <input type="submit" type="submit" value="更改">
   </td>
   <td width="145" align="center" bgcolor="#fff"><?php echo $arrprice[$i]*$arrcount[$i]; ?></td>
  </tr>
 </form>
 <?php
 $sum += $arrprice[$i]*$arrcount[$i];;
 }
 ?>
 <tr>
  <td>订单共计:</td>
  <td colspan="3"><?php echo $sum; ?></td>
 </tr>

</table>

如何在PHP中使用数组

说明:array_search()函数最常见的应用是购物车,实现对购物车中指定商品数量的修改和删除!

3、PHP一维数组与二维数组相互转换的示例

一维数组转换二维数组的示例代码:

<?php
header("Content-Type:text/html;charset=utf-8");

$arr[1] = array("a1","a2");
$arr[2] = array("b1","b2");

$newarr = array();
foreach($arr as $a){
 $newarr[] = $a;
}
print_r($newarr);

输出的结果为:

如何在PHP中使用数组

二维数组转为一维数组的方法:

<?php
header("Content-Type:text/html;charset=utf-8");

$arr = array(
 array(
  'id'=>1,
  'name'=>'cyy1'
 ),
 array(
  'id'=>2,
  'name'=>'cyy2'
 )
);

$ids = array_column($arr,'id');
$names = array_column($arr,'name');
print_r($names);

结果为:

如何在PHP中使用数组

注意:array_column();可以有第三个参数,如 $n = array_column($arr, 'name', 'id');

<?php
header("Content-Type:text/html;charset=utf-8");

$arr = array(
 array(
  'id'=>1,
  'name'=>'cyy1'
 ),
 array(
  'id'=>2,
  'name'=>'cyy2'
 )
);

$names = array_column($arr,'name','id');
print_r($names);

结果为:

如何在PHP中使用数组

4、php中数组怎么循环输出?遍历数组的方法介绍

第一种:使用 foreach 结构遍历数组

<?php
header("Content-Type:text/html;charset=utf-8");

$arr = array(
 'course1'=>'php',
 'course2'=>'thinkphp',
 'course3'=>'laravel',
);

foreach($arr as $k=>$v){
 echo $v.'<br/>';
}

遍历结果为:

php

thinkphp

laravel

第二种:list()函数遍历数组

list()函数仅能用于数字索引且索引从 0 开始的数组

下面将通过具体实例讲解 list()函数和 each()函数的综合应用,获取储存在组数中的用户登录信息。

具体开发步骤如下:

1.利用开发工具,新建一个PHP 动态页,保存为index.php。

2.应用 HTML 标记设计页面。首先创建用户登录表单,用于实现用户登录信息的录入,然后使用 each()函数提取全局数组$_POST中的内容,最后使用 white 语句循环输出用户所提交的注重信息。

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>index</title>
</head>
<body>
 <form name="form1" method="post">
  <table width="323" border="1" cellpadding="1" cellspacing="1" bordercolor="#66cc33" bgcolor="#fff">
   <tr>
    <td width="118" height="24" bgcolor="#ccff33">用户名</td>
    <td width="192" height="24" bgcolor="#ccff33">
     <input type="text" name="username" id="username" size="24">
    </td>
   </tr>
   <tr>
    <td height="24" bgcolor="#ccff33">密  码</td>
    <td height="24" bgcolor="#ccff33">
     <input type="password" name="pwd" id="pwd" size="24">
    </td>
   </tr>
   <tr>
    <td height="24" colspan="2">
     <input type="submit" name="submit" value="登录">
    </td>
   </tr>
  </table>
 </form>
</body>
</html>

<?php

while(list($name,$value)=each($_POST)){
 if($name!="submit"){
  echo "$name=$value<br/>";
 }
}

运行结果如下图所示:

如何在PHP中使用数组

说明:

each()函数用于返回当前指针位置的数组值,同时将指针推进到下一个位置。返回的数组包含4个键,键 0 和 key 包含键名,而键 1 和 value 包含相应的数据。如果程序在执行 each()函数时指针已经位于数组末尾,则返回 false。

5、PHP数组与字符串相互转换

1.使用 explode()函数将字符串转换成数组

<?php
header("Content-Type:text/html;charset=utf-8");

$str = "i am learning php";
$arr = explode(" ", $str);
print_r($arr);

输出结果为:

如何在PHP中使用数组

在开发一个投票管理系统时,经常需要在后台添加投票选项到投票系统,以作为投票的内容。下面使用 explode()函数对添加的投票选项通过“*”进行区分,然后使用 white 循环语句分别再也面中输出添加的投票选项。

具体开发步骤如下:

(1)利用开发工具,新建一个 PHP 动态页,保存为index.php。

(2)使用 HTML 标记设计面,首先建立投票表单,用于实现添加投票选项,然后使用 each()函数提取全局数组$_POST 中的内容,并最终使用 while 循环输出投票选项内容。代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>index</title>
</head>
<body>
 <form action="#" name="form1" method="post">
  <table width="400" border="1" cellpadding="0" cellspacing="1" bordercolor="#ff9900" bgcolor="#ccff66">
   <tr>
    <td width="98" height="120">添加投票选项</td>
    <td width="223" height="120">
     <p>
      <textarea name="content" id="content" cols="30" rows="5"></textarea><br>
      <span>注意:每个选项用*分开</span>
     </p>
    </td>
    <td width="61" height="120">
     <input type="submit" name="submit" value="提交">
    </td>
   </tr>
  </table>
 </form>
</body>
</html>

<?php
if($_POST['submit'] != ''){
 $content = $_POST['content'];
 $data = explode("*",$content);
 while(list($name,$value) = each($data)){
  echo '<input type="checkbox" name="checkbox" value="checkbox">';
  echo $value."\n";
 }
}

运行结果如下

如何在PHP中使用数组

2.使用 implode()函数将数组转换成一个字符串

<?php
$arr = array(1,2,3,4);
$str = implode($arr);
echo $str;

输出结果为:

1234

6、PHP输出数组-打印数组实例详解

一般使用print_r来打印数组(当然用var_dump也可以,但是结构上不清晰)

<?php
$arr = array(1,2,3,4);
print_r($arr);

如何在PHP中使用数组

当第二个参数为true时,print_r不会直接打印数组,而是将打印的内容作为字符串返回

<?php
$arr = array(1,2,3,4);
echo print_r($arr,true);

如何在PHP中使用数组

以上就是如何在PHP中使用数组的详细内容,更多关于PHP使用数组的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
php getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
解析php中heredoc的使用方法
Jun 17 PHP
解析mysql 表中的碎片产生原因以及清理
Jun 22 PHP
php获取网页请求状态程序示例
Jun 17 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
php三元运算符知识汇总
Jul 02 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 PHP
详解PHP中curl_multi并发的实现
Jun 08 #PHP
THINKPHP5.1 Config的配置与获取详解
Jun 08 #PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 #PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 #PHP
CI框架简单分页类用法示例
Jun 06 #PHP
简单的php购物车代码
Jun 05 #PHP
实例化php类时传参的方法分析
Jun 05 #PHP
You might like
在线增减.htpasswd内的用户
2006/10/09 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
python通过加号运算符操作列表的方法
2015/07/28 Python
python中import reload __import__的区别详解
2017/10/16 Python
python实现报表自动化详解
2017/11/16 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
什么是Python中的顺序表
2020/06/02 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
保洁主管岗位职责
2013/11/20 职场文书
优秀老师事迹材料
2014/02/05 职场文书
《穷人》教学反思
2014/04/08 职场文书
英语专业自荐书
2014/06/13 职场文书
2015年企业新年寄语
2014/12/08 职场文书
春季运动会加油词
2015/07/18 职场文书