修改文件中的数组值

时间:2010-12-16 14:58:08

标签: php

我有一个包含一些数组的php文件。我想修改其中一个数组并将其写回文件。对于例如说文件test.php有内容 -

<?php
$arr1 = array("a"=>"b", "c" =>"d");
$arr2 = array("a2" => "b2", "c2" => "d2");

我想更改$ arr1,以便test.php现在看起来像 -

<?php
$arr1 = array("a"=>"b", "c" =>"d", "e"=>"f");
$arr2 = array("a2" => "b2", "c2" => "d2");

我不知道文件中预先存在哪些数组。

编辑:我没有向数组中添加任何变量,只是添加了另一个键值对。问题是该数组是一个文件的一部分,其中有更多的数组,我不会总是知道。如果文件中只有一个数组,但我想知道是否可以使用多个数组执行此操作,我可以实现此目的。

3 个答案:

答案 0 :(得分:2)

您可以引入另一个“全局”数组

$arr = array('arr1' => array("a"=>"b", "c" =>"d"), 'arr2' =>("a2" => "b2", "c2" => "d2"));

serialize

$serArr = serialize($arr);
//write to file here

当您阅读文件时,只需unserialize其内容,以便您拥有带有子数组的“全局”数组,修改所需的值,将其序列化并将其写回。

请记住,当您编写大型数组时,这可能是一个巨大的性能问题。

答案 1 :(得分:1)

如果你在一个函数内(即不在全局范围内)get_defined_vars()可能是一个不错的选择。您只需要将文件包含在封闭的范围内并返回其密钥以获取文件中的所有变量名称。

答案 2 :(得分:0)

<?php
$arr1 = array("a"=>"b", "c" =>"d");
$newarr=array("d"=>"f");
$arr1+=$newarr;

它已经有5年了,但我想简单地为我工作。