PHP数组生成器

时间:2011-05-03 08:18:13

标签: php arrays

我在excel文件中有一些值,我希望它们都是数组元素记住文件中还包含其他数据。

我知道一种方法是将它们逐个复制并放入数组初始化语句

样本列表,它只是整个列表的一部分

Bay Area 
Greater Boston
Greater Chicago
Greater Dallas-Ft. Worth
Greater D.C.
Las Vegas
Greater Houston
Greater LA
Greater New York
Greater San Diego
Seattle
South Florida

当没有多少项目(如

)时,可以很容易地使用值初始化数组
$array= array('Bay Area '=>'Bay Area ','Greater Boston'=>'Greater Boston',....) 
// and so on

但是我有70-80个项目,如上所述初始化数组是非常繁琐的任务。

那么,伙计们是否有任何备用或捷径来分配带有值列表的数组?

是否有自动数组生成器工具?

5 个答案:

答案 0 :(得分:6)

如果你将它们复制到一个文件中,每个文件都有自己的行,你就可以在这个文件中读取这个文件

$myArray = file('myTextFile');

//sets the keys to the array equal to the values
$myArray = array_combine($myArray, $myArray); 

您可以将数据从excel导出为CSV,然后将文件读入php,如下所示:

$myArray = array();
if (($file = fopen("myTextFile", "r")) !== FALSE) {
    while (($data = fgetcsv($file)) !== FALSE) {
        foreach($data as $value) {
            $myArray[$value] = $value;
        }
    }
    fclose($handle);
}

答案 1 :(得分:3)

$array = explode("\n", file_get_contents('yourfile.txt'));

对于在PHP中加载CSV文件的更复杂案例,可以使用fgetcsv()甚至PHPExcelReader来获取XLS文件。

编辑(问题编辑后)

(删除了我糟糕的解决方案,因为ohmusama的文件()+ array_combine()显然更好)

答案 2 :(得分:1)

这一个:

$string_var = "
Bay Area 
Greater Boston
Greater Chicago
Greater Dallas-Ft. Worth
";

$array_var = explode("\n", $string_var);

答案 3 :(得分:1)

获取notepad ++,在那里打开excel文件,然后进行简单搜索并替换为regex。比如搜索“(。*)\ n”并替换为“'(\ 1)',”(“quoutes not included”),这会给你一长列表:

'湾区','大波士顿','大芝加哥'

这是在php执行时间方面创建数组的最快方法。

答案 4 :(得分:0)

我觉得它看起来更好:

$a[] = "Bay Area";
$a[] = "Greater Boston";
$a[] = "Greater Chicago";

要创建此类文本文件,请使用Excel(我没有Excel,但看起来有点):

=concatenate(" $a[] = ",chr(34),A1,chr(34),";")

然后只导出该列。