Php 永久推送到数组的末尾 我怎样才能做到以下几点:

Php 永久推送到数组的末尾 我怎样才能做到以下几点:,php,arrays,Php,Arrays,但它是否已永久添加到阵列中 我知道我们可以如何尝试: 创建一个新的.txt文件 例如写:1~2~3 使用file\u get\u contents将其应用于变量$y 应用分解() 现在我们可以做: x[]=y[0];x[]=y[1];x[]=y[2] 将其添加到foreach循环中 然后不知何故使用fwrite()或file\u put\u contents()呢?要添加我想添加到数组中的变量,以便使用fwrite或其他东西添加到.txt文件中 但是我想知道这是最好的方法吗?要“永久”保

但它是否已永久添加到阵列中

我知道我们可以如何尝试:

  • 创建一个新的.txt文件
  • 例如写:
    1~2~3
  • 使用
    file\u get\u contents
    将其应用于变量
    $y
  • 应用
    分解()
  • 现在我们可以做:
x[]=y[0];x[]=y[1];x[]=y[2]

  • 将其添加到foreach循环中
  • 然后不知何故使用fwrite()或file\u put\u contents()呢?要添加我想添加到数组中的变量,以便使用fwrite或其他东西添加到.txt文件中
但是我想知道这是最好的方法吗?

要“永久”保存任何东西,你需要某种持久性存储。txt文件可以工作,数据库甚至cookies代码也可以工作,这取决于您保存的内容


在数组上使用
序列化
,它将数组转换为字符串,您可以将其写入文件

file_put_contents("myfile",serialize($x));
unserialize
将字符串转换回数组

$x = unserialize(file_get_contents("myfile"));
如果只需要将值附加到数组的最末端,可以使用
file\u put\u contents
file\u append
选项,这比将整个数组读入内存并写回磁盘要快

file_put_contents("myfile", "1\n", FILE_APPEND);
file_put_contents("myfile", "2\n", FILE_APPEND);
并使用
文件
(默认情况下使用
\n
作为分隔符)读取数组


您的意思是希望以编程方式修改.php文件,以便
$x=array('1','2')?是的,例如,如果有人使用GET-it在url中执行?v=30,则会将其抓取,并将其安全永久地添加到数组的末尾。是的,但这是最好的方法吗?是否没有方法直接在同一个PHP文件中执行?不太可能。存储在文本文件或数据库中是“最好的方式”,在大多数情况下也是唯一的方式。我建议使用数据库,但这实际上取决于您保存的内容、保存的原因以及保存的数量。这是真的,将有大量数组,但我真的不在乎。xD一旦它达到了一个巨大的数量,我将移动到数据库,然后看到@FuzzyTree答案。不过,添加数据库的工作量并不大。是的,但如何在数组末尾追加/推送新字符串/值?@John123的方法与
$x[]='newvalue'相同
因此,在我们取消序列化后,添加新值,然后进行序列化?@John123是的,您可以使用
serialize
如果您想将更新后的数组重新写入磁盘在您进行的新编辑中,为什么不在任何地方进行序列化?
file_put_contents("myfile", "1\n", FILE_APPEND);
file_put_contents("myfile", "2\n", FILE_APPEND);
$x = file("myfile");