String aus arraylist erkennen

daisyduke1

Grünschnabel
hallo ihr lieben,
ich hänge schon seit zwei tagen an ein problem und hoffe ihr könnt mir weiterhelfen.


ich lade mir mittels SHOW TABLES LIKE eine liste aus der datenbank und bekomme zB. diese drei ergebnisse.:
Code:
yvnpj_gamesyvnpj_useryvnpj_rekorde
usw.
mittels
PHP:
$tn = array();
    foreach ($tables as $i => $tn) {
       if (stripos($tn, '_games') == 0){
         unset($tables[$i]);
         continue;
       }
  
       $tn = str_ireplace( 'yvnpj_' , '#__' ,$tn );
ändere ich yvnpj_ in #__ da mein string so anfängt

print_r($tn); lifert mir jetzt:
HTML:
#__community_games#__community_games_battle#__community_games_battle_gew
soweit sogut:

nun muss ich mit foreach oder so prüfen ob sich mein Sting z.B. ' #__community_games_battle' in der liste aus der print_r($tn) befindet.

Code:
if(string){
echo nachricht1
else
echo nachricht 2
}

nur leider bekomme ich das nicht hin und bitte um eure hilfe
 
Hallo Daisyduke

Du hast einen klizekleinen Fehler in deinem Code :-D


PHP:
$tn = array();
foreach ($tables as $i =>$string) {
    if (stripos($string, '_games') == 0){
        $tn[] = str_ireplace( 'yvnpj_' , '#__' ,$string);
        unset($tables[$i]);
        continue;
     }
}
    

print_r($tn);

Nun befüllst du $tn als Array, nicht als String, und kannst diesen auch gleich So bearbeiten ;)

Grüsse
 
So ist es vielleicht etwas robuster:

PHP:
<?php

$tables = array(
    'yvnpj_games',
    'yvnpj_user',
    'yvnpj_rekorde',
    'yvnpj_community_games',
    'yvnpj_community_games_battle',
    'yvnpj_community_games_battle_gew'
);

$prefixOld = 'yvnpj_';
$prefixNew = '#__';

$tablesNew = array();

foreach ($tables as $table) {
    if (0 === strpos($table, $prefixOld)) {
        $tablesNew[] = $prefixNew . substr($table, strlen($prefixOld));
    }
}

if (in_array('#__community_games_battle', $tablesNew, true)) {
    echo 'yes';
} else {
    echo 'no';
}
 
Zurück