Задать вопрос
@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";}}

Есть какие-нибудь способы ее сжать?
Как потом его перебрать?
  • Вопрос задан
  • 598 просмотров
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
Falseclock
@Falseclock
решаю нестандартные задачи
Лучше сериализовывать не через родной сериализатор, а через json_encode
Будет весить в два раза меньше.

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽