php数组定义入门教程详解

 更新时间:2016年11月25日 15:02  点击:2092
在php中数组定义有几种方法如array(),或arr[] 实现数组定义了,下面我来给各位朋友详细介绍关于 php数组定义的各种技巧详解

PHP数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应

用.
先说说PHP数组的定义…PHP数组包含两个项,key和value,可以通过key来获取相应的value,其中key又可

以是数值和关联的,如$array[0],$array[one]…
创建数组
PHP中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等,如
$array[0] = 1,$array = array(1,2,3); 一维数组,只包括三个值,属于数值型数组,引用时可用$array

[0]来代表1,创建数值数组时可以省略索引

PHP中创建数组使用array()结构来定义,比如:

 代码如下 复制代码


$people=array('name','sex','nation','brith');

 

而如何显示数组中的各元素的值,我们则是使用从0开始的索引,索引号在变量名称后的方括号中,比如

 代码如下 复制代码


<?php
$people=array('name','sex','nation','birth');
echo $people[2];
?>

 

输出的$people[2]就是显示的是nation(索引第一项从0计数)。

PHP除了支持数字索引数组以外,还支持相关数组。所谓相关数组,就是可自定义关键字来替换不直观的

数字索引,比如:

 代码如下 复制代码


<?php
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
echo $peoples['cs'];
?>

 

使用相关数组使得输出的选择很直观(不需要预先计算索引号然后输出),定义的关键字和值之间使用

“=>”符号定义。

根据PHP数组元素的两种显示方式,还可以如变量一样无需array()声明和初始化,直接自动创建数字。

比如

 代码如下 复制代码


$people[0]='name';
$people[1]='sex';
$people[2]='nation';
$people[3]='brith';

 或者

 代码如下 复制代码


$peoples['xm']='name';
$peoples['xb']='sex';
$peoples['mz']='nation';
$peoples['cs']='birth';

 该数组的大小根据所增加元素的多少动态的变化。

 代码如下 复制代码


//索引数组
    $user[0]=1;//用户序号
    $user[1]="zhangsan";//用户名
    $user[2]=10;//年龄
    $user[3]="nan";//性别
    echo '<pre>';
    print_r($user);
    echo '</pre>';
 
    //关联数组
    $user["id"]=1;
    $user["name"]="zhangsan";
    $user["age"]=10;
    $user["sex"];
    $user["age"]=90;//赋值
    echo $user["name"];//输出
 
    //使用array()声明数组
    $user=array(1,"zhangsan",10,"nan");
    //使用array()声明关联数组
    $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
 
    //声明多维数组(多条记录),来保存一个表中的多条用户信息记录
    $user=array(
        //用$user[0]调用这一行,比如调用这条记录中的姓名,$user[0][1]
        array(1,"zhangsan",10,"nan"),
        //用$user[1]调用这一行,比如调用这条记录中的姓名,$user[1][1]
        array(2,"lisi",20,"nv")
    );
 
    //数组保存多个表,每个表有多条记录
    $info=array(
        "user"=>array(
            array(1,"zhangsan",10,"nan"),
            array(2,"lisi",20,"nv")
        ),
 
        "score"=>array(
            array(1,90,80,70),
            array(2,60,40,70)
        )
 
 
 
    );
 
    echo $info["score"][1][1];//输出60,

在php中要统计某月的第一天和最后一天我们可以使用strtotime函数进行转换,下面介绍两种方法各位朋友可参考。

主要用到了strtotime函数,功能强大,支持相对日期

 代码如下 复制代码

//计算本月第一天和最后一天
$today=date("Y-m-d");
//这个不需要解释吧,直接把第一天设为1号
$firstday = date('Y-m-01', strtotime($today));
//这个语法以前还真没见过,
$lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
 
echo $firstday."<br/>";
echo $lastday;

Php.ini文件是php的一个配置文件,在windows主机中如果你未修改配置文件php.ini文件肯定是和你的php安装目录在一起的,但在linux中好像不一样,下面我来介绍查找php.ini位置的方法。

在linux下

最有可能的位置是:/etc目录下或/usr/local/lib目录下。

如果你还是找不到位置,那么请使用终极解决办法:

新建php文件,写入如下代码<?php echo phpinfo(); ?>保存,然后在浏览器访问该页面,搜索php.ini,恭喜你,你要找的php.ini文件位置已经找到了。(用该方法找Php.ini文件位置,在linux和windows下都是绝招哦)


在linux服务器上用命令行/data/php/bin/php  a.php | grep php.ini

显示

 代码如下 复制代码

Configuration File (php.ini) Path => /data/php/etc
Loaded Configuration File => /data/php/bin/php.ini

linux服务器上用的是 nginx+php

/data/php/bin/php.ini的权限

-rwxrwxrwx. 1 root root 69737 2月   3 13:49 /data/php/bin/php.ini

要怎么处理才能在浏览器里浏览a.php  显示Loaded Configuration File => /data/php/bin/php.ini

php命令行方式运行和在浏览器浏览php文件的主要区别是什么

Php.ini位置修改方法如下:

php.ini文件缺省放在/usr/local/lib上面,可以在编译的时候使用--with-config-file-path参数来修改php.ini的存放位置,例如你可以使用--with- config-file-path=/etc把它存放到/etc下面,然后可以从源码包中拷贝php.ini-dist到/etc/php.ini。


windows

在php安装文件夹里。

一共有两个类似php.ini-xxxxxxxx。你选择一个你把“-xxxxxxxxx”删除就是用这个。

在php中set_time_limit函数是用来限制页面执行时间的,如我想把一个php页面的执行时间定义为5秒就可以set_time_limit(5)了。

一个php脚本通过crontab每5分钟执行一次,考虑到脚本执行时间会超过5分钟,特意用set_time_limit(290)来控制脚本在290秒退出。某天突然发现后台有多个该脚本的进程在执行,也就是说set_time_limit(290)没有起作用。为了证明,特意使用如下代码测试。

 代码如下 复制代码

set_time_limit(5);

for ($i = 0; $i < 100; $i++) {
    echo date('Y-m-d H:i:s') . "n";
    sleep(1);
}

无论是在web还是CLI下,上述脚本并没有在5秒钟后退出。后来加上ini_set(‘max_execution_time’, 5)测试,结果一样。那是不是说明set_time_limit函数根本就没有用呢?其实不然,在 http://stackoverflow.com/questions/5874950/set-max-execution-time-in-php-cli 这里找到根源所在,其实是上面的写法有问题,例如使用下述代码:

 代码如下 复制代码

set_time_limit(5);

for (;;) {
}

执行后,大概5秒钟就可以看到”Fatal error: Maximum execution time of 5 seconds exceeded in”类似这样的错误提示。说明set_time_limit是起作用的。现在在去看看官方文档(http://www.php.net/manual/en/function.set-time-limit.php)上关于此函数的说明,在Note中写到:

The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running. This is not true on Windows where the measured time is real.

 

 代码如下 复制代码
<?php
//set_time_limit(0);
$i=1500;
include ("inc/conn.php");
while($i>0)
{
$sql="INSERT INTO php (php)
VALUES ('$i')";
if ($conn->execute($sql)===flase)
{
//echo "数据插入错误".$conn->errormsg();
}
else
{
$phpid=$conn->Insert_ID();
echo $i."已经存入数据库,编号:".$phpid;
}
$i--;
echo "<hr>";
}
?>

注意:sleep函数暂停的时间也是不计入脚本的执行时间的。所以也是第一个测试失败的原因。

当你的页面有大量数据时,建议使用set_time_limit()来控制运行时间,默认是30s,所以需要你将执行时间加长点,如 set_time_limit(300)  ,其中将秒数设为0 ,表示持续运行!

如:set_time_limit(0)表示长时间链接运行!

注意:这个函数的运行需要你关闭安全模式,在php.ini中将safe_mode = Off 安全模式设置为Off,否则将会出现下面错误:

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in

再次注意的是:

在php.ini可以通过定义max_execution_time来设置PHP页面的最大执行时间,比如下面:

 代码如下 复制代码
set_time_limit(900);

这个函数指定了当前所在php脚本的最大执行时间,
虽然设定值是900秒,实际上
最大执行时间=php.ini里的max_execution_time数值 - 当前脚本已经执行的时间 + 设定值
假如php.ini里的max_execution_time=30,当前脚本已经执行10秒,则:
最大执行时间=30-10+900=920秒。

php中设置set_time_limit不起作用的解决方法:

set_time_limit用来设置脚本的超时时间,用法如下:

set_time_limit(秒数);
规定从该句运行时起程序必须在指定秒数内运行结束,
超时则程序出错退出.
但是有时候设置set_time_limit没有效果,set_time_limit函数最好是在linux下执行,windows执行可能也无效
解决方法:
修改php.ini里的max_execution_time = 30了。这个默认是30秒,修改为max_execution_time = 300.重新启动apache服务器。这样超时设置为300秒就有提示信息了.

在php中数组赋值很简单,如果是一维数组赋值比二维数组或多维数组更简单,下面我来给各位同学介绍给数组赋值各种实例介绍,有需要了解的朋友可参考。

PHP数组赋值呢?如下:

例1,一维数组赋值

 代码如下 复制代码

$My_array=array(); 
$My_array[]=”www”  
$My_array[]=”helpphp”;  
$My_array[]=”cn”;


销毁数组

 代码如下 复制代码

unset($My_array[0];
unset($My_array); 


例2,二维数组赋值

 代码如下 复制代码

$data_array=array($total,2);//其中$datarows为查询得到的记录数 
$data_array[$i][2]=$Area;//提示错误:Cannot use a scalar value as an array 


具体的循环如下

 代码如下 复制代码

$i=0;
 while($result=$db->fetch_array($query))
 {  $Area=$result["Area"];
 $data_array[$i][2]=$Area; //出错! 
$i=$i+1;    
}  

[!--infotagslink--]

相关文章

  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • photoshop画斜线/直线/虚线的入门级教程

    这篇文章算是超级入门级别的了,我们下面来给各位介绍在photoshop画斜线/直线/虚线的教程了,希望下面这篇文章给你入门来帮助。 PS怎么画斜线 选择铅笔工具,或者画笔...2016-09-14
  • php数组操作 键名比较 差集 交集赋值

    本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
  • C#二维数组基本用法实例

    这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php curl模拟post请求和提交多维数组的示例代码

    下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <&#63;php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
  • C#数组的常用操作方法小结

    Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • Lua语言新手简单入门教程

    这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
  • C# 拷贝数组的几种方法(总结)

    下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • PHP 二维数组根据某个字段排序的具体实现

    本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#读取文件所有行到数组的方法

    这篇文章主要介绍了C#读取文件所有行到数组的方法,涉及C#针对文件及数组的相关操作技巧,需要的朋友可以参考下...2020-06-25
  • 将二维数组转为一维数组的2种方法

    如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array(  array(    'id'=>'45',    'name'=>'jack'  ),  array(    'id'=>'34',    'name'=>'mary'  ),  array(    'id...2014-05-31
  • php中数组写入文件方法

    在php中为我们提供了一个函数var_export 他可以直接将php代码入到一个文件中哦。 代码如下 复制代码 var_export($times,true);后面不加tru...2016-11-25
  • PHP 如何获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
  • js有序数组的连接问题

    1.前言 昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题。但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件。2.简单但效率不高的算法 我首先想到的是使用...2013-10-04
  • python 实现将Numpy数组保存为图像

    今天小编就为大家分享一篇python 实现将Numpy数组保存为图像,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
  • C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    在工作中经常遇到C#数组、ArrayList、List、Dictionary存取数据,但是该选择哪种类型进行存储数据呢?很迷茫,今天小编抽空给大家整理下这方面的内容,需要的朋友参考下吧...2020-06-25