Конвертация строки в формате Javascript-массива в PHP-массив

Конвертировать данные из одного формата в другой нужно с минимальными затратами времени. Если у Вас есть строка формата:

$string = '[30766,24527,3420,26725,26938,10731]';

По сути это типичный массив для javascript, но чтобы привести эту строку к формату массива в PHP нужно выполнить ряд операций. Это, конечно, не json и использовать json_decode нельзя. Использовать команду eval также крайне нежелательно. Для приведения строки в формате js-массива к массиву в PHP удачным решением будет использование комбинации trim и explode.

$array = explode(',', trim($string, '[]'));

Функция trim() для обрезания начала и конца строки примерно в 3 раза более производительная, чем str_replace и на порядок более производительная чем возможные альтернативы на основе регулярных выражений.

for($i=0;$i<1000000;$i++) {
	str_replace(array('[', ']' ),'', $string);
} // Время выполнения 1.457083

for($i=0;$i<1000000;$i++) {
	trim($string, '[]');
} // Время выполнения 0.429024

 

Мои PET-проекты
Матч Шредингера. Про футбол без спойлеров. Сервис помогает выбрать интересный матч для просмотра в записе. Перейти »
MafiozZz. Сервис для тех, кто любит играть в мафию. Сервис дает клубам возможность завести клубный сайт, предоставляет удобный интерфейс для ведения подобной статистики, расписания игр, выдавать игрокам награды, проводь адресную SMS рассылку (и прочие плюшки). Перейти »