用PHP读写数组?

时间:2015-06-17 18:54:57

标签: php arrays

我目前正在尝试使用PHP来跟踪"喜欢"在我的网站页面上。我想做的是将所有信息放入一个数组,而不是每个页面的单独文件,每个文件包含一个整数。我尝试做的是设置一个包含此数组的文件(称为data.txt)。

$array = array(
    "Page1" => 10,
    "Page2" => 3,
);

例如,上面,Page1有10个喜欢而Page2有3个喜欢。 这是问题的真正含义:如何将上述数组写入文本文件,然后再从中读取?我试过的大部分方法只是简单地读出一个字符串,而这并不是我想要的东西(我希望能够轻松访问我想要的数字)直接喜欢一个数组)。

以下是var_dump感兴趣的人:

array(2) { ["Page1"]=> int(10) ["Page2"]=> int(3) }

也许有某种方法可以将其解析回数组?

1 个答案:

答案 0 :(得分:3)

根据Mark Ba​​ker的建议,您需要序列化数据以将其保存到文件中。稍后您可以读取它并将其反序列化为数组。方法如下:

<?php

// DISPLAY ARRAY BEFORE SAVING IT.    
$old_array = array( "Page1" => 10,
                    "Page2" => 3,
                  );
echo "OLD ARRAY" .
     "<br/><br/>";
print_r( $old_array );

// WRITE ARRAY TO FILE.
$old_data = serialize( $old_array );
file_put_contents( "my_file.txt",$old_data );

// READ ARRAY FROM FILE.    
$new_data = file_get_contents( "my_file.txt" );
$new_array = unserialize( $new_data );

// DISPLAY ARRAY TO CHECK IF IT'S OK.
echo "<br/><br/>" .
     "NEW ARRAY" .
     "<br/><br/>";
print_r( $new_array );

?>

这是你应该在屏幕上看到的内容:

OLD ARRAY

Array ( [Page1] => 10 [Page2] => 3 )

NEW ARRAY

Array ( [Page1] => 10 [Page2] => 3 ) 

并且,如果你打开&#34; my_file.txt&#34;你会看到这个:

a:2:{s:5:"Page1";i:10;s:5:"Page2";i:3;}