Вы устанавливаете $b2_ch_v
на текущее содержимое элемента id
массива, а не ссылку на элемент массива.Вы должны ссылаться на индекс массива в присваивании.
for ($i = 1; $i <= 24; $i++) {
$b2_ch_v = 'b2_g_v_'.$i;
${$b2_ch_v}['id'] = '';
}
var_dump($b2_g_v_1); // => array(1) { ["id"]=> string(0) "" }
Вам на самом деле не нужна переменная, вы можете сделать вычисление в присваивании:
${'b2_g_v_'.$i}['id'] = '';
Но этоЛучше всего избегать переменных переменных и использовать вместо них массивы, как в другом ответе.