मेरे पास एक स्ट्रिंग है:

$string = 'I love my kitty and other animals.'; 

$categories = array(
    'kitty' => 'cat',
    'teddy' => 'bear',
    'someting' => 'other',
);

मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो सरणी में टेक्स्ट ढूंढता है और उन्हें परिवर्तित करता है। कुछ इस तरह:

function find_animal_in_string($string)
{
    // If $string contains one of the element in array print this array value
    // how to do that?
}

तो मेरा पसंदीदा परिणाम होगा:

echo $this->find_animal_in_string('I love my leon and other animals.') //echo cat
echo $this->find_animal_in_string('I do not like teddys in mountains.') //echo bear

आपकी मदद की सराहना करेंगे। मैंने strpos और array_key_exists की कोशिश की है लेकिन मेरे लिए काम नहीं किया है।

-4
Tikky 14 सितंबर 2017, 15:03

3 जवाब

सबसे बढ़िया उत्तर

स्ट्रिंग मौजूद है या नहीं यह जांचने के लिए आप strpos का उपयोग कर सकते हैं

foreach($categories as $key => $value){


 if(strpos($string,$key) == true)

    echo $value;


}
1
Arun Kumaresh 14 सितंबर 2017, 15:17
function find_animal_in_string($string)
{
// If $string contains one of the element in array print this array 
// how to do that?
 $categories = array(
'kitty' => 'cat',
'teddy' => 'bear',
'someting' => 'other',
 );
foreach($categories as $cle => $value){
    if(strpos($string,$cle) != FALSE){
    echo $value;
    }
 }
}   

    find_animal_in_string('I do not like teddy in mountains.');//echo bear
1
abderrahime sanadi 14 सितंबर 2017, 15:19

आप इसे रेगेक्स के साथ भी कर सकते हैं:

function find_animal_in_string($string)
{
// global $categories
        $matches = "/(".join("|", array_keys($categories)).")/";
        preg_match($matches, $string, $hit);
        return $categories[$hit[0]];
}

और $श्रेणियों . की दृश्यता के बारे में मत भूलना

1
fl0 14 सितंबर 2017, 15:35