Добавьте проверку, чтобы убедиться, что $ data содержит что-то:
if ((preg_match('/^nivo/i', $key)) &&
(!empty($data))) {
Этот код не имеет ничего общего с OP, демонстрирующим код, созданный в диалоге комментариев.
$strlen = strlen('');
var_dump($strlen); // Echos int(0)
var_dump($strlen === false); // Echos false
var_dump($strlen === 0); // Echos true
var_dump((bool) $strlen === false); // Echos true
PHP является свободно типизированным языком, поэтому появление ложного значения, возвращаемого из strlen, вводит в заблуждение.