Home  >  Article  >  Backend Development  >  How to write object array to file in php

How to write object array to file in php

PHPz
PHPzOriginal
2023-04-12 16:04:40845browse

PHP is an object-oriented programming language. I believe that developers who use PHP will encounter situations where they need to write object arrays to files. This article will introduce how to write an object array to a file in PHP.

  1. Convert object array to JSON string

Convert object array to JSON string is a prerequisite for writing object array to file. PHP has a built-in json_encode() function that can convert PHP variables into JSON format. Suppose there is an object array $data:

$data = array(
    array("name" => "Tom", "age" => 18),
    array("name" => "Jerry", "age" => 20)
);

You can use the json_encode() function to convert the object array into a JSON string:

$json_str = json_encode($data);
  1. Write a JSON string to a file

Next, you can use PHP’s built-in file_put_contents() function to write the JSON string to the file. The syntax of this function is:

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int

Among them, $filename represents the file name to be written; $data represents the data to be written, which can be a string, array or object; $flags represents optional flags. Commonly used ones are FILE_APPEND (append data to the end of the file) and LOCK_EX (exclusively lock the file); $context represents an optional context.

The code to write the JSON string to the file is as follows:

$filename = "data.json";
file_put_contents($filename, $json_str);
  1. Read the JSON string from the file and convert it into an object array

Connect Next, you can use the file_get_contents() function to read the JSON string from the file and convert it to an array of objects. The syntax of this function is:

file_get_contents ( string $filename [, bool $use_include_path = FALSE [, resource $context [, int $offset = 0 [, int $maxlen = NULL ]]]] ) : string|false

Among them, $filename represents the file name to be read; $use_include_path represents whether to search for files in the include path; $context represents the optional context; $offset represents the offset ;$maxlen represents the maximum number of bytes to be read.

The code for reading a JSON string from a file and converting it into an object array is as follows:

$filename = "data.json";
$json_str = file_get_contents($filename);
$data = json_decode($json_str, true);

json_decode() function converts a JSON string into a PHP variable. The second parameter indicates whether to Convert JSON object to associative array. The results are saved in the $data variable. If you do not need to convert to an associative array, you can set the second parameter to false, for example:

$data = json_decode($json_str);
  1. Complete code

Complete code for writing an object array to a file As follows:

// 对象数组转换为JSON字符串
$data = array(
    array("name" => "Tom", "age" => 18),
    array("name" => "Jerry", "age" => 20)
);
$json_str = json_encode($data);

// 将JSON字符串写入文件
$filename = "data.json";
file_put_contents($filename, $json_str);

// 从文件中读取JSON字符串并转换为对象数组
$json_str = file_get_contents($filename);
$data = json_decode($json_str, true);

// 输出结果
var_dump($data);

The output of the above code is:

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(3) "Tom"
    ["age"]=>
    int(18)
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(5) "Jerry"
    ["age"]=>
    int(20)
  }
}
  1. Summary

This article introduces how PHP writes an object array to a file, including Convert array of objects to JSON string, write JSON string to file and read JSON string from file and convert to array of objects. Hope this article is helpful to everyone.

The above is the detailed content of How to write object array to file in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn