3v4l.org

run code in 300+ PHP versions simultaneously
<?php //Пополнить справочник названиями полей. $fields=[ 4=> ['name'=>'value', 'is_text'=>0], 6=> ['name'=>'feedback','is_text'=>1], 11=>['name'=>'city', 'is_text'=>0], 12=>['name'=>'', 'is_text'=>1] //Причина, по которой не надо ставить ?? вместо ?: при подстановках. ]; $src=[ [ 'entry_id' => 3, 'element_id' => 4, //Эта строка сериализована криво //'value' => 'a:2:{i:2;s:14:"Имя";i:4;s:18:"Фамилия";}' 'value' => 'a:2:{i:2;s:6:"Имя";i:4;s:14:"Фамилия";}' ], [ 'entry_id' => 3, 'element_id' => 6, 'value' => 'Тестовый отзыв' ], [ 'entry_id' => 3, 'element_id' => 11, 'value' => 'a:1:{i:2;s:16:"г. Москва";}' ], [ 'entry_id' => 3, 'element_id' => 12, 'value' => 'блаблабла' ], ]; $dst = []; foreach($src as $row){ //Версия, исключающая появление предупреждения //$field=(isset($fields[$row['element_id']]['name']) && $fields[$row['element_id']]['name']) ? $fields[$row['element_id']]['name'] : $row['element_id']; //Версия, использующая игнорирование предупреждений о несуществующих переменных, но работающая быстрее и читается легче $field=$fields[$row['element_id']]['name'] ?: $row['element_id']; //Искать через in_array пару десятков значений в миллионном цикле - не лучшее решение. //$dst[$row['entry_id']][$field] = (in_array($row['element_id'], $text_fields)) ? $row['value'] : unserialize($row['value']); $dst[$row['entry_id']][$field] = $fields[$row['element_id']]['is_text'] ? $row['value'] : unserialize($row['value']); } print_r($dst);
Output for git.master_jit, git.master
Array ( [3] => Array ( [value] => Array ( [2] => Имя [4] => Фамилия ) [feedback] => Тестовый отзыв [city] => Array ( [2] => г. Москва ) [12] => блаблабла ) )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
52.7 ms | 406 KiB | 5 Q