@darknet37

Как сжать большой ассоциативный массив и потом его перебрать. PHP?

Есть вот такой большой массив, он может быть и еще больше.
$array = array(
    "1.5 сп" => [
        'color' => [
            'Зеленый' => 'green',
            'Черный' => 'black',
        ],
        'price' => '250'
    ],
    "2 сп" => [
        'color' => [
            'Зеленый' => 'green',
            'Черный' => 'black',
        ],
        'price' => '250'
    ],
    "3 сп" => [
        'color' => [
            'Зеленый' => 'green',
            'Черный' => 'black',
        ],
        'price' => '350'
    ],
    "4 сп" => [
        'color' => [
            'Зеленый' => 'green',
            'Черный' => 'black',
        ],
        'price' => '150'
    ],
);

Дальше я его перевожу в ассоциативный массив, чтобы хранить в БД.
$string = serialize($array);
Получается вот такая большая строка:
a:4:{s:8:"1.5 сп";a:2:{s:5:"color";a:2:{s:14:"Зеленый";s:5:"green";s:12:"Черный";s:5:"black";}s:5:"price";s:3:"250";}s:6:"2 сп";a:2:{s:5:"color";a:2:{s:14:"Зеленый";s:5:"green";s:12:"Черный";s:5:"black";}s:5:"price";s:3:"250";}s:6:"3 сп";a:2:{s:5:"color";a:2:{s:14:"Зеленый";s:5:"green";s:12:"Черный";s:5:"black";}s:5:"price";s:3:"350";}s:6:"4 сп";a:2:{s:5:"color";a:2:{s:14:"Зеленый";s:5:"green";s:12:"Черный";s:5:"black";}s:5:"price";s:3:"150";}}

Есть какие-нибудь способы ее сжать?
Как потом его перебрать?
  • Вопрос задан
  • 538 просмотров
Решения вопроса 2
Falseclock
@Falseclock
решаю нестандартные задачи
Лучше сериализовывать не через родной сериализатор, а через json_encode
Будет весить в два раза меньше.

И потом, зачем вы хотите сжимать? Если у вас массив менее 10 килобайт, то вы потеряете больше процессорного времени на сжатие и распаковку. Да и размер не сильно уменьшится.

При этом в самой базе можете прям в JSON и хранить, в mySQL и PostgreSQL есть такие типы полей. Мало того, средствами базы потом сможете даже опирировать своими массивами.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект