首页 > php 学习笔记 数组1

php 学习笔记 数组1

1、一般情况下$name['tom']和$name[tom]是相同的;但没有引号的键不能和常量区别开,如:define('index', 5)时;$name['tom']和$name[tom]不同

2、双引号里的变量一般要用{}括起来是好习惯,如: echo "{$name}";

3、数组 $name = array('tom', 'jim', 'alice'); 和 $username = ['tom', 'jim', 'alice'];

4、数组用 =>符号来指定一个初始值,后面的键值是连续的;

  ps1:$days = array(1 =>"Mon", "Tue", "Wed", "Thu");  //Tue的键值为2,Wed的键值为3等等

  Ps2:$days = array('one' => "Mon", "Tue", "Wed", "Thu");  //数组2的键值为0,数组3的键值为1

5、指定的范围:range();

  ps1:$num = range(2, 5);  //$num = array(2, 3, 4, 5);

  ps2:$str = range(a, z);    //保存了a-z的26个字母;

  ps3:$num = range(5, 2);  //$num = array(5, 4, 3, 2);

  ps4:$str = range("abd", "zds"); //保存了a-z的26个字母,只限定第一个字符范围,数字也是

6、获得数组的大小

  count()和sizeof()函数在用法和效果上是完全一样的;

  如 $family = array("tom", "jim", "cherry");   $size = count($family); $size是3

7、填充数组

  array_pad() 用重复的内容来创建一个数组,第一个参数是数组,第二个参数是你想让数组拥有的最少元素个数,第三个参数是每个元素的初始值;返回新数组,丢弃源数组

  ps1:

  $scores = array(5, 10);

  $padded = array_pad($scores, 5, 0);  //$padded现在是array(5, 10, 0, 0, 0);

  ps2:

  $padded = array_pad($scores, -5, 0);  //$padded现在是array(0, 0, 0, 5, 10);

8、多维数组

  要使用变量替换来访问多维数组中的元素,必须将整个元素用大括号括起来:

  echo "{$num[1][0]}"; //结果为4 

  echo "$num[1][0]";  //结果为array[0]

9、析取多个值

  要把一个数组中的所有值都复制到变量中,可以使用list()结构;

  $person = arrary("tom", 35, "alice");

  list($name, $age, $wife) = $person;  //$name 是tom, $age是35, $wift是alice

  (list()函数通常用来从一个只返回一条记录的数据库查询中提取数据,这样会把简单差uxnde数据自动赋值到一系列局部变量中。)

  ps:$sql ="select name, age, wife from person where id = 2";

    $result = mysql_query($sql);

    list($name, $age, $wife) = mysql_fetch_assoc($result);

  ps2:如果数组中的元素个数比list()中的变量个数,多余的值被忽略;如果list()中的值比数组中的多,多余的值被设置为NULL;

  在list()中使用两个多多个连续的逗号来跳过数组中的值;

  $values = range('a', 'e');

  list($m,  ,  $n,  ,$o) = $values; //$m是”a", $n是"c", $o是"e"

转载于:https://www.cnblogs.com/Caoxt/p/4603770.html

更多相关:

  • 学习目标:了解什么是数组;数组如何访问内存地址(一维,二维);什么是数组是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储。利用元素的索引可以计算出该元素对应的存储地址。 最简单的数据结构类型是一维数组。数组如何实现随机访问?数组是一种线性表数据结构,用一直连续的内存空间来储存一组具有相同类型的数据。根据数组的特性(连...

  • 一、静态数据及动态数组的创建     静态数据:               int a[10];             int a[]={1,2,3};             数组的长度必须为常量。     动态数组:             int len;             int *a=new int...

  • 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val...

  • 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2],  函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2...

  • 文章目录1. 数组的声明2. 数组元素的遍历3. 数组的截取4. Go 语言的切片5. 数组 和 切片的共同点...

  • 虽然循环可以工作,但跟踪嵌套循环也很困难。您可以考虑调用卷积定理来更容易地执行卷积。见here。在使用numpy的fft模块,您可以计算原始图像堆栈的n维离散Fourier变换,并将其乘以大小相同的核的n维Fourier变换(文档可找到here)。因为你的2D内核是一个3x3数组,它是一个3x3xz正方形的“支柱”,你可以用0填充这个...

  • 1. 一维数组 静态 int array[100];   定义了数组array,并未对数组进行初始化静态 int array[100] = {1,2};  定义并初始化了数组array动态 int* array = new int[100];  delete []array;  分配了长度为100的数组array 动态 int* a...

  • 一.选择排序 #include //选择排序 //记录最小的那个数的索引值 //下面这个循环就是去寻找最小的那个数的index //有比k对应的值更小的 //判断是否需要交换 //k和i对应的值交换 void selectsort(int array[],int counttimes){     int k = 0...

  • php 的json_encode能把数组转换为json格式的字符串。字符串没有缩进,中文会转为unicode编码,例如u975au4ed4。人阅读比较困难。现在这个方法在json_encode的基础上再进行一次美化处理。使人能方便阅读内容。   1. 使用 json_encode 输出 1

  • 首先准备如下社交图形数据:打开spark-shell;导入相关包:import org.apache.spark._ import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD创建如上graph对象:// Create an RDD for the vertice...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...