Выносите многомерные массивы из "текстовых строк" - ускорение -%. Одномерные можно не выносить.
При использовании многомерных массивов в строках наблюдается заметное снижение скорости Из-за многомерности нужно заключать переменные в парные фигурные скобки.
Тот же пример с ассоциативным 3-х мерным массивом, но с обращением к элементу по его индексному номеру:
{$x="test ".$myarray[3][2][0]." test"; }
{$x="test {$myarray[3][2][0]} test"; }
{$x="test ";$x.=$myarray[3][2][0];$x=" test";}
счетчик
кол-во вызовов
общее вpемя
сpеднее вpемя
% от min
% от max
общее время
test N1
1
3.3012
3.3012
00.0%
73.1%
test N2
1
4.1667
4.1667
26.2%
92.3%
test N3
1
4.5145
4.5145
36.8%
100.0%
Разница в 1 и 2 вариантах очень мала. Это говорит, что потери на не эффективное использование кавычек не слишком большое, чем доступ к массивам (см. тесты в первой главе).
{$x="test".$myarray["test"]."test";}
{$x="test$myarray[test]test"; }
{$x="test{$myarray[test]}test"; }
счетчик
кол-во вызовов
общее вpемя
сpеднее вpемя
% от min
% от max
общее время
test N1
1
2.8495
2.8495
00.0%
80.9%
test N2
1
2.9519
2.9519
03.6%
83.9%
test N3
1
3.5202
3.5202
23.5%
100.0%
А теперь, на основании всех трех тестов, однозначный вывод: использовать фигурные скобки для обозначения границ имени элемента многомерного массива НЕЛЬЗЯ. Это сильно снижает скорость работы - 25-30% (в третьем варианте от простого добавления скобок скорость понизилась на четверть). Не использовать скобки нельзя. Следовательно, единственный способ не терять 30% скорости - выносить многомерные массивы из скобок.