Vadim
да нет у него массива
Я пишу:
$a = [];
$a['filter'][] = [2=>'John'];
Это массив?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Вместо 2 => john id => 2, label => john
Al
это вообще пхп
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Al
ты пхпшный массив что ли в json записываешь?
Vadim
Vadim
Так нельзя?
Al
ну в жс это будет уже объект а не массив
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Так нельзя?
У js нет ассоциативных массивов 👆я там выше писал
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Можно, все зависит от того что ты хочешь
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Но то что ты пытаешься сделать не правильно, измени структуру, отдавай объекты
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
И профит
Vadim
Ок :)
Vadim
Последний вопрос. У меня есть PHP-массив, как его сохранить в базу правильнее всего?
Al
смотря что потом будешь с ним делать
Al
нужен ли поиск по его частям итд
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Vadim
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Данные структурированы?
Vadim
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Через модели ActiveRecord yiiшных)
Al
ну я так понимаю ему этот массив не нужен как сущность
Vadim
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Делаешь модель, пьешь связи и готово
Al
а чтобы в одно поле сохранить и если по нему поиска не будет, можно посмотреть serialize
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А потом так же взять собрать и схоронить
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Тогда модель
Niko
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Вообще смысл хранения Json?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Если только не структурированные данные которые лень в NoSql пихать?
Al
я хз, ему ж надо массив в поле хранить)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Niko
я тоже про noSql подумал. Но там еще задача, чтоб много кода не переписывать
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Есть так много отличных решений но почему то люди все ещё выбирают Json в mysql))
Vadim
JSON рассматривается как вариант. У меня единственная задача - чтобы это работало как можно быстрее.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Ну тогда можно писать все что угодно)
Niko
тогда можно даже хеш хранить, чтоб строки короче стали)))
Al
serialize() unserialize()
Vadim
https://github.com/phadej/igbinary
Vadim
Вот нашел.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Json называется)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Там есть энкод и дэкод
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Стандартный
Al
с этого вопрос и начался) что жсон не то делает ему
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Это проблема JS, он уже не тот =/
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А не энкодеров
Vadim
В общем, всем спасибо :)
Vadim
Поставлю ту штуку, лайком много, наверное хорошая )
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Vadim
JSON :
JSON encoded in 2.180496931076 seconds
JSON decoded in 9.8368630409241 seconds
serialized "String" size : 13993
Native PHP :
PHP serialized in 2.9125759601593 seconds
PHP unserialized in 6.4348418712616 seconds
serialized "String" size : 20769
Igbinary :
WIN igbinary serialized in 1.6099879741669 seconds
WIN igbinrary unserialized in 4.7737920284271 seconds
WIN serialized "String" Size : 4467
Vadim
Это вообще вдохновляет.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Чем?
Vadim
Чем?
Скоростью, размером строки
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
При чем тут размер строки?
Niko
можешь тесты на совокупности всех своих строк произвести через $model::find()->batch() и дать нам результат?
Мне интересно стало
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Он сериализует по другому?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Сжимает в gz?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
При чем тут размер бд?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
И метод хранения?
Vadim
Vadim
Я решаю другую проблему уже ) Вы сказали, что мне не нужен JSON, я послушал вас и отказался от него.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А, ты про в бд не нужен) ок)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Посмотри noSql может понравится)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Где-то даже было как прикрутить несколько db в yii)
Vadim
Vadim
Vadim
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
noSql быстро работает, можешь прототип накидать и протестить)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓