Как записать/сохранить массив в файл php функция примеры
Записать массив в файл или сохранить массив в файл. Как можно записать массив в файл, давайте разберем несколько способов!
Вернее все способы записи массива в файл! Есть возможность без дополнительных манипуляций записать простой массив в файл! Данный массив будет записываться построчно! И второй способ это запись вообще любого массива с помощью функции!
Все способы записи массива в файл
- Как записать простой массив в файл построчно!?
- Как записать простой массив в файл в строку с разделителем!?
- Как записать любой массив в файл!?
- Как записать многомерный массив в файл!?
Запись массива в файл построчно!
Прежде чем перейти к анонсированной теме пункта - важное :
Массив в файл можно сохранить в виде(type) строки(string). Поскольку массив не является строкой, а является типом array, то прежде чем записывать в файл, егомассив нужно превратить в строку.
Подробно запись/сохранение массива в файл построчно!
Данный пример работает только для одномерного массива - его и возьмем в качестве примера для сохранения в файл ... нам понадобится:
Нам нужен пример одномерного массива, который будем записывать в файл присвоим его к переменной :
Для записи массив а в файл на понадобится функция file_put_contents
Но! Если мы создадим вот такую запись, как в обычной записи в файл, то у нас запишется не совсем так, как нам требуется...
А получим, что массив запишется все в кучу одной строки, специально сделал запись в файл именно таким образом! Вот, что у нас получилось : Пример 1 Это не совсем то, что нам нужно!
Нам нужно, чтобы последующая ячейка записывалась с новой строки! Как это вообще можно сделать!? Нам потребуется функция implode, и если мы сделаем из массива строку с переносом, то мы получим вот такую функцию в сборе для записи массива построчно:
Пример записанного массива построчно и сохраненного в файл:
И если сейчас мы посмотрим на тот же массив, который записан в файл, то мы увидим совершенно другую, интересную ситуацию:
Как восстановить оригинальный массив из сохраненного в файл?
Как вернуть записанный массив в файл, обратно в переменную!?Как записать простой массив в файл в строку с разделителем!?
Следующий пример записи массива в файл также пригоден только для одномерного массива.
Этот вариант несколько отличается от выше приведенного.
Для записи массива с помощью разделителя нам потребуется:
Возьмем все тот же одномерный массив:
Вручную, конечно же, мы не будем ставить разделитель между ячейками, будем использовать снова функцию implode.
В качестве разделителя рекомендую использовать редкие знаки, которые никогда не будут повторяться в тексте, инче, при возврате строки в массив, вы получите не оригинальный массив. Рекомендую подбирать разделитель в таблице символов. Для примера используем разделить - знак умножения "*":
Пример записи массива в строку с разделителем:
Результат записи массива в строку: пример записи массива в строку с разделителем!Как восстановить оригинальный массив из сохраненного в файл?
Как вернуть записанный массив в файл, обратно в переменную!?Как записать любой массив в файл!?
Как уже выше было сказано, что нам нужно превратить массив в строку(для записи) и... существует функция, которая превращает строку в массив - serialize. Просто берем любой - абсолютно любой массив и превращаем его в строку, а уж записать строку в файл - это просто!
Сохраняем массив в файл:
Нам понадобится массив, но мы возьмем чуть посложнее массив например ассоциативный!
Как записать ассоциативный массив в файл!?
Для того, чтобы показать пример записи ассоциативного массива в файл нам потребуется ассоциативный массив, например такой:
$array_ass = array (
"Иванов" => array ("рост" => 174, "вес" => 68),
"Петров" => array ("рост" => 181, "вес" => 90),
"Сидоров" => array ("рост" => 166, "вес" => 73));
Далее нам нужно данный массив пропустить через функцию serialize, если мы прямо сейчас здесь выведем вот таким образом:
То получим:
a:3:{s:12:"Иванов";a:2:{s:8:"рост";i:174;s:6:"вес";i:68;}s:12:"Петров";a:2:{s:8:"рост";i:181;s:6:"вес";i:90;}s:14:"Сидоров";a:2:{s:8:"рост";i:166;s:6:"вес";i:73;}}
Ну далее напишем опять конструкцию для записи ассоциативного массива в файл :
$array_ass = array (
"Иванов" => array ("рост" => 174, "вес" => 68),
"Петров" => array ("рост" => 181, "вес" => 90),
"Сидоров" => array ("рост" => 166, "вес" => 73));
file_put_contents("example_array_in_file_3.dat" , serialize ( $array_ass ));
Например так:
Как записать многомерный массив в файл!?
Берем любой многомерный массив, с любым количеством включений...
И поступаем аналогично! ВСЁ!ВСЁ! Одинаково, что мы делали в предыдущем пункте!
$многомерный_массив = array(array(array array array) array(array array array) array(array array array) ) ;
file_put_contents("название_файла.dat" , serialize ( $многомерный_массив ));
И ваш многомерный массив будет записан в файл!