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);

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.5.00.0130.00820.22
8.4.150.0030.00014.05
8.4.140.0160.00517.64
8.4.130.0120.00917.92
8.4.120.0120.00720.37
8.4.110.0120.00918.69
8.4.100.0060.00517.84
8.4.90.0040.00717.85
8.4.80.0100.00719.45
8.4.70.0390.01017.82
8.4.60.0400.01117.63
8.4.50.0390.00817.43
8.4.40.0420.00717.29
8.4.30.0420.00617.06
8.4.20.0420.00817.57
8.4.10.0460.00517.41
8.3.280.0140.00818.39
8.3.270.0110.00916.32
8.3.260.0030.00616.80
8.3.250.0090.00718.98
8.3.240.0060.00216.70
8.3.230.0100.00916.60
8.3.220.0110.00716.80
8.3.210.0350.01016.61
8.3.200.0320.01116.39
8.3.190.0280.00916.25
8.3.180.0280.01016.44
8.3.170.0340.00716.32
8.3.160.0340.01116.55
8.3.150.0430.00916.20
8.3.140.0450.00716.59
8.3.130.0330.00816.75
8.3.120.0320.00916.75
8.3.110.0340.01116.66
8.3.100.0360.01116.27
8.3.90.0350.01016.56
8.3.80.0370.00816.45
8.3.70.0250.00816.61
8.3.60.0280.00716.24
8.3.50.0370.01216.46
8.3.40.0420.01017.16
8.3.30.0310.00417.50
8.3.20.0320.01017.16
8.3.10.0280.01317.35
8.3.00.0140.01217.76
8.2.290.0060.00519.09
8.2.280.0310.00816.37
8.2.270.0330.00716.23
8.2.260.0320.00716.20
8.2.250.0260.00916.42
8.2.240.0220.00416.30
8.2.230.0310.00816.55
8.2.220.0120.01116.26
8.2.210.0260.00716.50
8.2.200.0250.00816.20
8.2.190.0290.01116.57
8.2.180.0310.00816.54
8.2.170.0370.00617.71
8.2.160.0440.00717.88
8.2.150.0390.00817.42
8.2.140.0390.00717.63
8.2.130.0310.00217.62
8.2.120.0350.00717.80
8.2.110.0360.01117.31
8.2.100.0300.01117.63
8.2.90.0360.00817.25
8.2.80.0370.00417.56
8.2.70.0330.00517.55
8.2.60.0350.00617.28
8.2.50.0330.01017.30
8.2.40.0310.00917.63
8.2.30.0350.00617.70
8.2.20.0190.00817.48
8.2.10.0140.00317.62
8.2.00.0150.00217.52

preferences:
34.24 ms | 403 KiB | 5 Q