Когда вы перебираете поля, которые следующие:
array(
'type' => 'my_type',
'foo' => 'bar',
'etc.' => 'value'
)
с помощью
foreach($this->data['fields'] as $field)
На каждой итерации, $field
- это уже значения, которые вы ищете (my_type, bar, value), поэтому выполнение $ field ['type'], как упоминалось в @zneak, заставит php жонглировать 'type' до 0, следовательно, вы получите первый символ.
Чтобы получить значение, когда вы находитесь в ключе типа, вы можете сделать следующее:
public function show() {
foreach($this->data['fields'] as $key => $field) {
if($key == 'type') echo $field;
}
}