Как сделать сериализацию массива с POST переменными?

У меня есть несколько массивов, с одинаковыми ключами, но разными POST переменными
$data = array(
    'one' => $_POST['a_one'],
    'two' => $_POST['a_two'],
    'three' => $_POST['a_three']
);

$data = array(
    'one' => $_POST['b_one'],
    'two' => $_POST['b_two'],
    'three' => $_POST['b_three']
);

$data = array(
    'one' => $_POST['c_one'],
    'two' => $_POST['c_two'],
    'three' => $_POST['c_three']
);


Я хочу записать эти массивы в БД, и доставать когда мне нужно получать эти POST данные.
То есть, если я сейчас сериализую один из массивов, POST переменные станут null, а мне нужно как-то сохранить $_POST, дабы после unserialize объявить в скрипте массив как я выше обозначил

Хочу заострить внимание: что $_POST переменные в скрипте не передаются до serialize, мне нужны именно $_POST['blabla'] сериализовать, а не значение этого элемента
  • Вопрос задан
  • 269 просмотров
Решения вопроса 2
@BorisKorobkov Куратор тега PHP
Web developer
если я сейчас сериализую один из массивов, POST переменные станут null

Сериализация никак не модифицирует $_POST. Это вам не код Шредингера.

мне нужны именно $_POST['blabla'] сериализовать, а не значение этого элемента

Русский язык неродной, да?
Сохраните в БД сериализованный массив
['one' => 'c_one', 'two' => 'c_two', 'three' => 'c_three']
. А потом foreach ... $data[$key] = $_POST[$value];
Ответ написан
lonadelsi
@lonadelsi
Frontend/backend developer, UI/UX Designer
Если Вы хотите сериализовать саму переменную, а не ее значение, вам лучше сериализовать тогда весь $_POST, а потом вынуть его. Или хранить в этом самом массиве не "a"=>$_POST["b"] а просто "a"=>"b" и позже уже вызывать $_POST[$key]. Нельзя как-то взять и превратить переменную в строку. Переменная - она лишь переменная для Вас в Вашем коде, зрительная форма копирования единых данных, записанных изначально. Когда вы прописываете где-либо в коде переменную, интерпретатор PHP заменяет её содержанием этой переменной. Еще вот такой пример:

$array = ["a"=>"lol", "b"=>"kek", "c"=>"cheburek"];

foreach( $array as $name=>$value )
    $$name = $value;

print $b; // kek


В этом коде мы создали переменную исходя из данных другой переменной, то есть по сути $$test то же самое, что ${$test} или что $a или ${'a'}, если бы $test = "a";

Тут нужно хорошо понимать, как работает PHP, чтобы всё усвоить это в мозге.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы