array_push($chararray,$str{$i}); bu satırı
$chararray[$i] = $str{$i};ile değiştirirmisin?

Eğer olmazsa;
var_dump($str) yaparmısın, veri tipiylemi bir sorun var acaba?