在之前的文章《PHP数组学习之一维数组如何创建和初始化(代码详解)》中,我们介绍了创建数组的两种常规方法:“直接为数组元素赋值”和“array()函数”。今天我们再来谈谈数组的创建,介绍两种另类的数组创建方法,我们来看看吧。

PHP中,我们还能够以填充方式来创建新数组,主要用到的函数为:array_fill()和array_fill_keys()。

  • array_fill():会以填充键值的方式来创建一个新数组

  • array_fill_keys():会以填充键名和键值的方式来创建一个新数组

下面我们通过代码示例来具体了解一下这两个函数。

1、array_fill()函数

<?php
$arr=array_fill(0,4,"hello");
var_dump($arr);
?>

array_fill($index, $number, $value)函数接受3个不可省略的参数$index(起始索引)、$number(填充元素数量)和$value(用于填充的键值)。

其中,$index参数支持负值,数组索引有以下三种取值情况:

  • 如果为正数,则数组索引从$index值开始,到$index+$number-1值结束。例$index为2,$number为4,则数组索引为:2、3、4、5。

  • 如果为0,则数组索引从0开始,到$number-1值结束。例$index为0,$number为4,则数组索引为:0、1、2、3。

  • 如果为负数,则数组索引由 $index012, …,$number-2 组成。例$index为-2,$number为4,则数组索引为:-2、0、1、2。

在上例中,array_fill(0,4,"hello")$index为0(索引从0开始)、$number为4(数组有四个元素),因此数组索引为:0、1、2、3;而$valuehello,则这四个元素的键值都为hello,因此输出结果为:

1.png

在看两个示例:

<?php
$arr=array_fill(3,4,"hello");
var_dump($arr);
?>

分析:索引从3开始、到3+4-1=6结束,数组的键值都为hello,因此输出结果为:

2.png

<?php
$arr=array_fill(-2,4,"hello");
var_dump($arr);
?>

输出结果为:

3.png

$value参数不仅可以是单个数值/字符串,也可以是一个数组,那么创建的就是一个二维数组了。

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array_fill(0,4,array("张三",25,"男"));
var_dump($arr);
?>

输出结果为:

4.png

2、array_fill_keys()函数

<?php
$keys=array("a","b","c","d");
$arr=array_fill_keys($keys,"hello");
var_dump($arr);
?>

array_fill_keys($keys,$value)函数接受2个不可省略的参数$keys(包含填充键名的一个数组)、$value(填充键值)。

简单来说,array_fill_keys()函数会使用$keys数组中元素作为键名,$value作为值来填充出一个新数组。

从上面的代码示例可以看出:新数组有四个元素,键名分别为“a”、“b”、“c”、“d”;这四个元素的键值都为“hello”,因此输出结果为:

5.png

array_fill_keys()和array_fill()函数一样,$value值也可以接受一个数组,那么创建的就是一个二维数组了。

<?php
header("Content-type:text/html;charset=utf-8");
$keys=array("a","b","c","d");
$arr=array_fill_keys($keys,array("李四",21,"男"));
var_dump($arr);
?>

输出结果为:

6.png

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →PHP函数之array数组函数视频讲解,快来学习吧!

以上就是PHP数组学习之如何以填充方式来创建数组的详细内容,更多请关注亿码酷站其它相关文章!


PHP数组学习之如何以填充方式来创建数组
—–文章转载自PHP中文网如有侵权请联系ymkuzhan@126.com删除

下载声明:
  • 本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压;
  • 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。
  • 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版!
  • 版权声明:
  • 下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。
  • 免责声明:
  • 您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!