/**
  * Prüfen ob alle leeren Elemente auch das array gelöscht werden
  * und keys zurückgesetzt werden
  */
 public function testRemoveEmptyArrayValuesSimple()
 {
     $aArray = array('ich', 'bin', 1, '', 0, null, 'Array' => array(), 'Test', true, false);
     $aNoEmptyValues = tx_mklib_util_Array::removeEmptyArrayValuesSimple($aArray);
     $this->assertTrue(is_array($aNoEmptyValues), 'No array given.');
     $this->assertEquals(count($aNoEmptyValues), 5, 'Wrong count of entries.');
     //auf die keys im zurück gegebenen und initialen array achten!!!
     $this->assertEquals('ich', $aNoEmptyValues[0], '1. wert falsch');
     $this->assertEquals('bin', $aNoEmptyValues[1], '2. wert falsch');
     $this->assertEquals(1, $aNoEmptyValues[2], '3. wert falsch');
     $this->assertEquals('Test', $aNoEmptyValues[3], '4. wert falsch');
     $this->assertEquals(true, $aNoEmptyValues[4], '5. wert falsch');
 }
 /**
  * Prüft ob ein Wort der Wortliste im gegebenen String vorkommt
  *
  * @param string $word
  * @param $wordlist
  * @param $greedy | alle oder nur ein Treffer?
  * @param $sanitizeWord | alle Sonderzeichen vor der Prüfung entfernen
  *
  * @return null || array || string
  */
 private function checkForWordInWordlist($word, $wordlist, $greedy = true, $sanitizeWord = true)
 {
     //wenn es kein array ist, dann is die wordlist leer
     if (!is_array($wordlist)) {
         return NULL;
     }
     if ($sanitizeWord) {
         //alle Sondzeichen entfernen
         $utilString = tx_rnbase::makeInstance('tx_mklib_util_String');
         $word = $utilString->html2plain($word);
         $word = $utilString->removeNoneLetters($word);
     }
     //die einzelnen Wörter prüfen
     foreach ($wordlist as $entry) {
         //damit in DB nicht für jedes Wort ein Eintrag angelegt werden muss,
         //werden komma-separierte Wörterlisten innerhalb des Wort-Feldes
         //ebenfalls unterstützt --> str_replace
         $sWordlist .= $sEntry = str_replace(',', '|', $entry->getWord());
         // '\b' bedeutet das nur nach ganzen Wörtern gesucht wird. ist f**k
         //geblacklisted wird sfuck nicht bemängelt
         if (!$greedy && preg_match('/\\b(' . $sEntry . ' )\\b/i', $word, $matches)) {
             //nur einen treffer?
             return $matches[0];
         }
         $sWordlist .= '|';
         //für die regexp
     }
     // '\b' bedeutet das nur nach ganzen Wörtern gesucht wird. ist f**k
     //geblacklisted wird sfuck nicht bemängelt
     if ($greedy && preg_match_all('/\\b(' . $sWordlist . ')\\b/i', $word, $matches)) {
         //alle treffer?
         tx_rnbase::load('tx_mklib_util_Array');
         //preg_mactch_all gibt ein array zurück, was auch viele leere Werte für die Nicht-Treffer enthält. Diese stören und werden bereinigt
         return tx_mklib_util_Array::removeEmptyArrayValuesSimple($matches[0]);
     }
     //kein Treffer!!!
     return null;
 }