05 一文解决PHP数组操作

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: 路老师带你深入PHP世界,从数组的基础知识讲起,包括数组的创建、赋值、类型(数字索引数组与关联数组)、多维数组,以及常用数组函数如遍历、统计、查询、添加、删除重复元素和排序等。实例讲解,轻松上手。下期预告:PHP面向对象。

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

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

image.gif 编辑

1 数组及创建

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

image.gif 编辑

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

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

1.1 array()创建数组

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

image.gif

image.gif 编辑

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

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

image.gif

image.gif 编辑

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

1.2 []创建数组

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

image.gif

image.gif 编辑

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

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

image.gif

image.gif 编辑

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);
?>

image.gif

image.gif 编辑

2 数组类型

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

2.1 数字索引数组

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

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

image.gif

image.gif 编辑

2.2 关联数组

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

image.gif 编辑

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

image.gif

image.gif 编辑

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

3.1 二维数组定义

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

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

image.gif

image.gif 编辑

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>";
    }
    
  ?>

image.gif

image.gif 编辑

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
  ?>

image.gif

image.gif 编辑

4.3 查询数组中指定元素

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

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

image.gif

image.gif 编辑

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

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

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

image.gif

image.gif 编辑

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;
  ?>

image.gif

image.gif 编辑

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);
  ?>

image.gif

image.gif 编辑

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);
  ?>

image.gif

image.gif 编辑

下节预告:PHP面向对象。

相关文章
|
4天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
7天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
4天前
|
人工智能 运维 双11
2024阿里云双十一云资源购买指南(纯客观,无广)
2024年双十一,阿里云推出多项重磅优惠,特别针对新迁入云的企业和初创公司提供丰厚补贴。其中,36元一年的轻量应用服务器、1.95元/小时的16核60GB A10卡以及1元购域名等产品尤为值得关注。这些产品不仅价格亲民,还提供了丰富的功能和服务,非常适合个人开发者、学生及中小企业快速上手和部署应用。
|
13天前
|
人工智能 弹性计算 文字识别
基于阿里云文档智能和RAG快速构建企业"第二大脑"
在数字化转型的背景下,企业面临海量文档管理的挑战。传统的文档管理方式效率低下,难以满足业务需求。阿里云推出的文档智能(Document Mind)与检索增强生成(RAG)技术,通过自动化解析和智能检索,极大地提升了文档管理的效率和信息利用的价值。本文介绍了如何利用阿里云的解决方案,快速构建企业专属的“第二大脑”,助力企业在竞争中占据优势。
|
14天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3936 2
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
4天前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
499 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
|
10天前
|
安全 数据建模 网络安全
2024阿里云双11,WoSign SSL证书优惠券使用攻略
2024阿里云“11.11金秋云创季”活动主会场,阿里云用户通过完成个人或企业实名认证,可以领取不同额度的满减优惠券,叠加折扣优惠。用户购买WoSign SSL证书,如何叠加才能更加优惠呢?
985 3
|
8天前
|
机器学习/深度学习 存储 人工智能
白话文讲解大模型| Attention is all you need
本文档旨在详细阐述当前主流的大模型技术架构如Transformer架构。我们将从技术概述、架构介绍到具体模型实现等多个角度进行讲解。通过本文档,我们期望为读者提供一个全面的理解,帮助大家掌握大模型的工作原理,增强与客户沟通的技术基础。本文档适合对大模型感兴趣的人员阅读。
397 16
白话文讲解大模型| Attention is all you need
|
8天前
|
算法 数据建模 网络安全
阿里云SSL证书2024双11优惠,WoSign DV证书220元/年起
2024阿里云11.11金秋云创季火热进行中,活动月期间(2024年11月01日至11月30日),阿里云SSL证书限时优惠,部分证书产品新老同享75折起;通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起。
560 5
|
4天前
|
安全 网络安全
您有一份网络安全攻略待领取!!!
深入了解如何保护自己的云上资产,领取超酷的安全海报和定制鼠标垫,随时随地提醒你保持警惕!
693 1
您有一份网络安全攻略待领取!!!