2017-11-01 3 views
-7
function categoriesIdsFunction($ids){ 
    //I try with preg_replace remove if exists all character before _ 
    $ids = preg_replace('/^[^_]*_\s*/', '', $ids); 

    $ids = preg_replace('/\s+/', '', $ids); 
     return "in ('" . str_replace(",","','",$ids) . "') "; 
} 

$categories_in_article = "267,267_463,267_462"; 

$categories_in_article_return = categoriesIdsFunction($categories_in_article); 

私はこれを取る:( '463'、 '267_462')で、 は私が前に_($ IDS =にpreg_replaceをすべての文字が存在する場合には「(削除にpreg_replaceでみてください/^[^ ] * \ S * /」、 ''、$ id)を;)すべての文字が前に存在する場合は削除_私のコードでは

私はこの戻りが必要になります( '267'、 '463'、 '462')

+0

'リターンにpreg_replace( '/ \ D + _ /'、 ''、$ idを);' –

+0

ダークアブソル@Niet、あなたは、私が尋ねるものを手に入れる唯一の人です私にマイナスを与えた人は、もっと注意深く読むことを学ぶべきです。 – chris

+0

私はあなたにマイナスを与えました。 "この質問は研究努力を示していません;それは不明または有用ではありません。 –

答えて

1

でIあなたが返す必要があるものを手に入れることはできません。あなたは配列を必要とする場合、あなたはこれを試すことができます。

$result = array_map(function (string $item) { 
    return preg_replace('.+_', '', $item); 
}, explode(',', $categoriesInArticle)); 

また、あなたがimplode(',', $result)/O _符号wの文字列を取得することができます。

0

このようなことがいくつかありますか? 出す:in ('267','463','462')

function test2() 
{ 
    $categories_in_article = "267,267_463,267_462"; 
    $stringArray = explode ("," , $categories_in_article); 
    $categories_in_article_return = "in ("; 
    foreach($stringArray as $string){ 
     $categories_in_article_return .=  
     $this->categoriesIdsFunction($string).","; 
    } 
$categories_in_article_return = rtrim($categories_in_article_return,","); 
$categories_in_article_return .= ") "; 
echo $categories_in_article_return; 
} 

    function categoriesIdsFunction($ids){ 
     //I try with preg_replace remove if exists all character before _ 
     $ids = preg_replace('/^[^_]*_\s*/', '', $ids); 

     $ids = preg_replace('/\s+/', '', $ids); 
     return "'".str_replace(",","','",$ids)."'"; 
    } 
関連する問題