在Coding过程中经常会碰到用文件存储数组的情况,比如做缓存文件等等等等。下面总结下文件存储数组的三种常用方法。

  一、return array

01	<?php //存储数组的文件array.php
02	return Array (
03	    "db_host1" => 123,
04	     "db_host2" => 123,
05	    "db_host3" => 123,
06	     "db_host4" => 123,
07	     "db_host5" => 123,
08	     "db_host6" => 123,
09	     "db_host7" => 123,
10	     "db_host8" => 123,
11	     "db_host9" => 123,
12	     "db_host10" => 123,
13	     "db_host11" => 123,
14	     "db_host12" => 123,
15	     "db_host13" => 123,
16	     "db_host14" => 123,
17	     "db_host15" => 123,
18	     "db_host16" => 123 );
19	 ?>

使用进直接require ‘array.php’ 即可:

1	<?
2	$file = './arr.php';
3	$arr  = require $file;
4	?>

  二、序列化

	<?php
2	//存储数组的文件ser.php
3	return
4	'a:16:{s:8:"db_host1";s:3:"123";s:8:"db_host2";s:3:"123";s:8:"db_host3";s:3:"123";s:8:"db_host4";s:3:"123";s:8:"db_host5";s:3:"123";s:8:"db_host6";s:3:"123";s:8:"db_host7";s:3:"123";s:8:"db_host8";s:3:"123";s:8:"db_host9";s:3:"123";s:9:"db_host10";s:3:"123";s:9:"db_host11";s:3:"123";s:9:"db_host12";s:3:"123";s:9:"db_host13";s:3:"123";s:9:"db_host14";s:3:"123";s:9:"db_host15";s:3:"123";s:9:"db_host16";s:3:"123";}';
5	?>

调用后对文件进行反序列化即可得到数组:

	<?
2	$file = './ser.php';
3	$arr  = unserialize(require $file);
4	?>

三、存为ini配置文件形式

  先举个例子:文件名ini.php

01	<?php
02	exit;
03	?>
04	db_host1 =123
05	db_host2 =123
06	db_host3 =123
07	db_host4 =123
08	db_host5 =123
09	db_host6 =123
10	db_host7 =123
11	db_host8 =123
12	db_host9 =123
13	db_host10 =123
14	db_host11 =123
15	db_host12 =123
16	db_host13 =123
17	db_host14 =123
18	db_host15 =123
19	db_host16 =123

  用parse_ini_file直接对文件进行解析即可得到数组:

	<?
2	$file = './ini.php';
3	$arr  = parse_ini_file($file2);
4	?>

 

 ,可以在ini文件中加注释、可以使其返回的数组为二维数组。

  

  总结下上面三种方法,经测试在效率上差别不是很大;当数组是一维的情况下本人更喜欢用ini的形式——直观;如果要求返回的数组较复杂的话ini形式就不太适应,可以用return array形式或序列化。