入门PHP就来我这(纯干货)05

news2024/7/7 17:15:41

~~~~ 有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 ~~~~

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。

1 数组及创建

数组,顾名思义,本质上就是一系列数据的组合。在这个组合中,每个数据都是独立的,可以对每个单独的数据进行分配和读取。在程序设计中引入数组可以更有效地管理和处理数据。

数组中每个实体都包含两个项:键(也叫下标)和值。可以通过键值来获取相应数组元素的值。

在PHP编程中,创建数组的方法主要有两种:一种是应用array()函数创建数组,另一种是直接通过数组元素赋值的方式创建数组。

1.1 array()创建数组
<?php 
    $array = array("php","java","c++"); 
    print_r($array); 
?>

此时如果我们想格式化输出内容,可以在输出的时候添加一个echo "<pre>";

<?php
  $array = array("php","java","c++");
  echo "<pre>";
  print_r($array);
?>

注意:从PHP5.4起可以使用短数组定义语法,用[]代替array(),如$array=["php","java","c++"];。

1.2 []创建数组
<?php
  $array = ["php","java","c++"];
  echo "<pre>";
  print_r($array);
?>

注意此时默认创建的数组的下标是从0开始的,因此如果需要把下标开始设置成1开头的,可以采用下面的方法。


<?php
  $array = array("1"=>"php","2"=>"java","3"=>"c++");
  echo "<pre>";
  print_r($array);
?>

1.3 数组赋值

数组赋值直接通过$array[1]="test";方式。

<?php
  $array = array("1"=>"php","2"=>"java","3"=>"c++");
  echo "<pre>";
  print_r($array);
  $array[1] = "PHP语言";
  $array[2] = "JAVA语言";
  $array[3] = "CPP语言";
  echo "<hr>";
  echo "赋值结果:<br>";
  print_r($array);
?>

2 数组类型

PHP支持两种数组:数字索引数组(indexed array)和关联数组(associative array),前者使用数字作为关键字,后者使用字符串作为键。

2.1 数字索引数组

PHP数字索引一般表示数组元素在数组中的位置,它由数字组成,一般默认从0开始,不需要特别指定。

<?php
  $pro1 = array("PHP","java","cpp");
  echo "<pre>";
  print_r($pro1)

?>

2.2 关联数组

关联数组的键名可以是数值和字符串混合的形式,而不像数字索引数组的键名只能是数字。在一个数组中,只要有一个键名不是数字,那么这个数组就称为关联数组。

<?php
  $pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");
  echo "<pre>";
  $pro1["C"] = 9;
  print_r($pro1);
  

?>

3 多维度数组(主要是二维)

3.1 二维数组定义

数组中不一定就一个键名和值的简单列表,每个位置还可以保存另一个数组。使用这种方法可以创建一个二维数组,二维数组其实也是类似于表格的形式。

<?php
  $pro1 = array(
    "A"=>array(1,2,3),
    "B"=>"java",
    "C"=>"cpp"
  );
  echo "<pre>";
  $pro1["C"] = 9;
  print_r($pro1);
  

?>

4 数组常用函数

4.1 遍历数组函数

使用foreach()函数遍历数组

<?php
    $pro1 = array(
      "A"=>array(1,2,3),
      "B"=>"java",
      "C"=>"cpp"
    );
    
    foreach($pro1 as $key=>$value){
      echo $key.":".$value."<br>";
    }
    
  ?>

4.2 统计数组元素个数

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

<?php
    $pro1 = array(
      "A"=>array(1,2,3),
      "B"=>"java",
      "C"=>"cpp"
    );
    
    foreach($pro1 as $key=>$value){
      echo $key.":".$value."<br>";
    }
    echo "第一层数组元素个数为:".count($pro1);
    echo "<br>";
    echo "所有层元素个数和为".count($pro1, COUNT_RECURSIVE);//COUNT_RECURSIVE也可以改为1,默认为0
  ?>

4.3 查询数组中指定元素

array_search()函数可以实现查询数组中给定的值的位置索引。

<?php
    $pro1 = array(
      "A"=>"PHP",
      "B"=>"java",
      "C"=>"cpp"
    );
    
    $res = array_search("java",$pro1);
    echo "被查询的数组元素索引为:".$res;
  ?>

4.4 获取数组中最后一个元素

通过array_pop()获取数组中最后一个元素,返回其值。

<?php
    $pro1 = array(
      "A"=>"PHP",
      "B"=>"java",
      "C"=>"cpp"
    );
    
    $res = array_pop($pro1);
    echo "最后一个数组元素为:".$res;
  ?>

4.5 向数组中添加元素

使用array_push()函数向数组中添加元素,返回最终的数组元素总数。

<?php
    $pro1 = array(
      "A"=>"PHP",
      "B"=>"java",
      "C"=>"cpp"
    );
    echo "原来的数组个数为:".count($pro1);
    echo "<br>";

    $str = "android";
    $res = array_push($pro1,$str);
    echo "最终的数组元素个数为:".$res;
  ?>

4.6 删除数组中重复元素

通过array_unique()函数可以删除数组中国重复元素。

<?php
    $pro1 = array(
      "A"=>"PHP",
      "B"=>"java",
      "C"=>"cpp",
      "D"=>"cpp",
      "E"=>"java"
    );
    echo "<pre>";
    print_r($pro1);
    echo "---------------<br>";
    $res = array_unique($pro1);
    print_r($res);
  ?>

4.7 数组排序函数

常用的排序函数见下表:

函数名称

描述

sort()

从低到高的顺序排序,不保持索引关系。

rsort()

对数组逆向排序

asort()

对数组进行排序并保持索引关系

arsort()

对数组进行逆向排序并保持索引关系

ksort()

对数组按照键名排序

krsort()

对数组按照键名逆向排序

natsort()

用“自然排序”算法对数组排序

natcasesort()

用“自然排序”算法对数组进行不区分大小写字母的排序

小小案例带你飘一下
<?php
   /**
    * 根据数组中的某个键值的大小进行排序,仅支持二维数组
    * @param array $array 排序数组
    * @param string $key 键值
    * @param bool $asc 默认正序排序,false为降序
    * @return array 排序后的数组
    */
    function arraySortByKey($array=array(), $key= " " ,$asc=true){
      $result = array();
      foreach($array as $k=>$v) {
        $values[$k] = isset($v[$key])?$v[$key]:" ";
      }
      unset($v);
      $asc?asort($values):arsort($values);
      foreach($values as $k=>$v) {
        $result[$k] = $array[$k];
      }
      return $result;

    }
    // 定义数组
    $data = array(
      array("post_id"=>1,'title'=>'如何学好php','reply_num'=>500),
      array("post_id"=>2,'title'=>'如何学好java','reply_num'=>600),
      array("post_id"=>3,'title'=>'如何学好cpp','reply_num'=>400)
    );
    // 新的排序结果
    $new_array = arraySortByKey($data,'reply_num',false);
    echo "<pre>";
    print_r($new_array);

  ?>

下节预告:PHP面向对象。

大家如果喜欢技术,并想有个好的交流平台可以关注我的 我的知乎首页,会不定期分享本人觉得比较好的技术类电子书。

另外,自己创建的一个技术qq群,玩转技术群,该群里功能:分享技能,电子书,代码,以及兼职项目等交流,欢迎大家加入一起交流。

^V^ ###制作不易,您的关注和点赞是路老师更新的动力!###^V^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1886618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux进程通信】使用匿名管道制作一个简单的进程池

进程池是什么呢&#xff1f;我们可以类比内存池的概念来理解进程池。 内存池 内存池是在真正使用内存之前&#xff0c;先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时&#xff0c;就从内存池中分出一部分内存块&#xff0c;若内存块不够再继…

docker-compose搭建prometheus、grafana

一、安装prometheus 1、安装 version: 3.1services:prometheus:image: prom/prometheus:v2.48.0container_name: prometheushostname: prometheusrestart: alwaysvolumes:- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml- ./prometheus/:/etc/prometheus/port…

淘宝扭蛋机小程序开发,新玩法、新收益体验!

近几年&#xff0c;随着娱乐消费的火爆&#xff0c;潮玩市场得到了快速发展&#xff0c;从而带动了扭蛋机市场的发展&#xff0c;扭蛋机也逐渐风靡在消费市场中。对于年轻人消费者来说&#xff0c;愿意为扭蛋机的热门IP商品而买单。目前&#xff0c;价格低、颜值高、种类多样的…

大科技公司大量裁员背后的真相

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

试用笔记之-汇通计算机等级考试软件一级Windows

首先下载汇通计算机等级考试软件一级Windows http://www.htsoft.com.cn/download/htwork.rar

JavaMySQL 学习(基础)

目录 Java CMD Java发展 计算机存储规则 Java学习 switch新用法&#xff08;可以当做if来使用&#xff09; 数组定义 随机数 Java内存分配 MySQL MySQL概述 启动和停止 客户端连接 数据模型 关系型数据库 SQL SQL通用语法 SQL分类 DDL--数据定义语言 数据库…

时间复利效应才是人生的催化剂

在追求成功的道路上&#xff0c;许多人都在寻找捷径。然而&#xff0c;真正的捷径并非不劳而获的幻想&#xff0c;而是通过长期坚持在某一领域深耕细作&#xff0c;享受时间复利效应带来的巨大收益。本文将探讨如何选择合适的领域并长期坚持下去&#xff0c;以实现成功。 时间…

Agent 学习笔记

近年来&#xff0c;人工智能领域取得了重大进展&#xff0c;人工智能代理现在能够处理复杂的任务。尽管取得了这些进展&#xff0c;但有效地并行和协调多个人工智能代理协同工作仍然是一个挑战。 一群智能体可以理解为一组智能体在单个环境中共同共存&#xff0c;该环境可以相…

不用找了!这个软件自带各行业话术,客服效率飞跃

有一款客服工具软件&#xff0c;不但能吸附聊天窗口&#xff0c;实现图文视频话术的一键发送&#xff0c;还内置了多行业的优质客服话术模板&#xff0c;允许用户直接下载使用&#xff0c;快速构建起适合自身企业的专业客服知识库。 前言 在今天的快节奏商业环境中&#xff0c…

The Sandbox 通过创作者挑战赛推动社区参与

游戏开发者并不是每天都有机会让自己的作品赢得大奖。但在 The Sandbox&#xff0c;这已经成为一种趋势&#xff01;首届 "创作者挑战赛 "让顶尖创作者将 150 万 SAND 捧回家。现在&#xff0c;我们要带着另一个巨额奖池回来了&#xff01; 关于首届创作者挑战赛&…

PCIe Switch

如图所示&#xff0c;pcie Switch 被定义为多个虚拟PCI-to-PCI Bridge设备的逻辑集合。所有交换机由以下基本规则管理。 . Switch在配置软件中表现为两个或多个逻辑PCI-to-PCI桥 不需要支持下行端口作为锁定请求的发起端口. 每个enable的端口必须符合“流量控制”规范。 .S…

aclStream流处理多路并发Pipeline框架中VEncode Module代码调用流程整理、类的层次关系整理、回调函数赋值和调用流程整理

目录 1 代码调用详细流程 2 类的层次关系 3 回调函数的赋值和调用流程 参考文献&#xff1a; 将寒武纪的CNStream适配到华为昇腾平台&#xff0c;并起名aclStream&#xff0c;整理了下华为昇腾平台aclStream中VEncode Module的代码调用流程、类的层次关系以及回调函数的赋值…

(九)绘制彩色三角形

前面的学习中并未涉及到颜色&#xff0c;现在打算写一个例子&#xff0c;在顶点着色器和片元着色器中加入颜色&#xff0c;绘制有颜色的三角形。 #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <iostream>void …

数据加密解密和哈希的解析

[S1301]数据的加解密 对提供的原始数据&#xff08;字符串或者二进制数组&#xff09;进行加密是数据保护框架体提供的基本功能&#xff0c;接下来我们利用一个简单的控制台程序来演示一下加解密如何实现。数据的加解密均由IDataProtector对象来完成&#xff0c;而该对象由IDa…

React+TS 从零开始教程(4):useEffect

上一节传送门&#xff1a;ReactTS 从零开始教程&#xff08;3&#xff09;&#xff1a;useState 源码链接&#xff1a;https://pan.quark.cn/s/c6fbc31dcb02 上一节&#xff0c;我们已经学会了React的第一个Hook&#xff1a;useState。 这一节&#xff0c;我们要学习的是另一…

2024年江西省研究生数学建模竞赛A题交通信号灯管理论文和代码分析

经过不懈的努力&#xff0c;2024年江西省研究生数学建模竞赛A题论文和代码已完成&#xff0c;代码为A题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模…

作业7.2

用结构体数组以及函数完成: 录入你要增加的几个学生&#xff0c;之后输出所有的学生信息 删除你要删除的第几个学生&#xff0c;并打印所有的学生信息 修改你要修改的第几个学生&#xff0c;并打印所有的学生信息 查找你要查找的第几个学生&#xff0c;并打印该的学生信息 1 /*…

Qt中使用MySQL数据库详解,好用的模块类封装

本文将详细介绍如何在Qt应用程序中集成MySQL数据库&#xff0c;并封装实现好用的mysql数据库操作类。包括环境准备、连接数据库、执行查询及异常处理等关键步骤&#xff0c;同时包含mysql驱动的编译。分享给有需要的小伙伴&#xff0c;喜欢的可以点击收藏。 目录 环境准备 项…

scikit-learn教程

scikit-learn&#xff08;通常简称为sklearn&#xff09;是Python中最受欢迎的机器学习库之一&#xff0c;它提供了各种监督和非监督学习算法的实现。下面是一个基本的教程&#xff0c;涵盖如何使用sklearn进行数据预处理、模型训练和评估。 1. 安装和导入包 首先确保安装了…

win10下安装PLSQL14连接Oracle数据库

问题背景 在使用Oracle开发过程中&#xff0c;经常会使用工具来连接数据库&#xff0c;方便查询、处理数据。其中有很多工具可以使用&#xff0c;比如dbeaver、plsql等。本文主要介绍在win10环境下&#xff0c;plsql14的安装步骤以及安装过程中遇到的一些问题。 安装步骤及问题…