PHP arama ve özel dize eklemek

4 Cevap

Benim tabloya dizeleri bir grup ekleme duyuyorum. Bu, örnek biridir

| = | 4 | = | 3 | = | 5 | = | 3 | = | Evet | = | yorum yok.

Bazen benim dize gibi olabilir

| = | 4 | = | 3 | = | 5 | = | 3 | = | Evet | = |

= | | Bu durum için ben sonuna kadar bir dize (üzgünüm, hiçbir veri) eklemek istiyorum.

Ayrıca benim dize gibi olabilir

 | = | 4 | = | 3 | = | 5 | = | 3 | = | Evet | = | 

Sonunda bu sembolü boş alandır. = | | Bu durumda ben de sonunda bu dizeyi (üzgünüm, hiçbir veri) eklemek istiyorum.

Eğer bunu nasıl söyleyebilir?

4 Cevap

Dizenin sonuna ayıklamak için susbstr kullanın

if (substr($string, -3) == '|=|') 
    $string .= '(Sorry no data)';

Ya da bir boşluk karakteri ile

if (substr($string, -1) == ' ') 
        $string .= '(Sorry no data)';

Ayrıca düzenli ifadeler ile aynı şeyi elde edebilirsiniz

Bu deneyin:

$splitted = explode("|=|", $your_string);
if (count($splitted) < 6)
{
  $your_string .= "Sorry no data";
}

: Eğer eklemek istiyorsanız, son bölümde "yorum yok" ise "Üzgünüz veri yok" de, eğer değiştirmek

if (count($splitted) < 6) || $splitted[5] == "No comments")

Soru, neden bunu yapmak için ihtiyacım var? Benim için, ben haklıysam, Database normalization bakmak sizin veritabanı yapısı gibi yanlış ve (1 alana n değişkenleri kurtarmaya çalışıyoruz sesler < Yanılıyorsam / em>, I) ... Sorunuzu missunderstood.

$string = "|=|4|=|3|=|5|=|3|=|Yes|=|";
$var = explode("|=|",$string);
$pick_last_array = count($var);
$pick_last_array = $pick_last_array-1;
if(trim($var[$pick_last_array])==""){
    $my_last_val =  "Am coming";
}else{
    $my_last_val =  $var[$pick_last_array];
}

echo $my_last_val;

Bu pasajı benim sorunum sabit.