在PHP中搜索数组的一部分并获得它的其余部分


Search for a part of an array and get the rest of it in PHP

我有一个名为$myarray的数组,其值如下:

myarray = array ( 
    [0] => eat-breakfast 
    [1] => have-a-break
    [2] => dance-tonight
    [3] => sing-a-song
) 

我的目标是搜索这个数组的一部分,并得到它的其余部分。下面是一个例子:

如果我提交,我想得到早餐

如果我提交,我想得到a-break

我只是尝试,但我不确定怎么做…

$word = 'eat';
$pattern = '/'.$word.'/i';
foreach ($myarray as $key => $value) {
   if(preg_match($pattern, $value, $matches)){
       echo $value;
   }
}
print_r($matches);

它显示:

eat-breakfastArray ( ) 

但是我想要这样的东西:

breakfast 

我想我完全错了,但我不知道该怎么做。

谢谢。

use

stripos($word, $myarray)

<?php
$myarray = array ( 
    'eat-breakfast',
    'have-a-break',
    'dance-tonight',
    'sing-a-song'
) ;

function search($myarray, $word){
    foreach($myarray as $index => $value){
        if (stripos($value, $word) !== false){
            echo  str_replace(array($word,'-'), "", $value);
        }
    }
}
search($myarray, 'dance');
echo "<br />";
search($myarray, 'have-a');
echo "<br />";
search($myarray, 'sing-a');
演示

我想你要找的词在开头。试试这个

function f($myarray, $word)
{
    $len = strlen($word);
    foreach($myarray as $item)
    {
        if(substr($item, 0, $len) == $word)
            return substr($item, $len+1);
    }
    return false;
}

您向preg_match提供了错误的信息,尽管我建议使用array_search()..查看我更新的代码片段:

$word = 'eat';
$pattern = '/'.$word.'/i';
foreach ($myarray as $key => $value) {
   if(preg_match($pattern, $value, $matches)){
       echo $value;
   }
}
print_r($matches);

要去掉最后一个位,只需执行str_replace操作将单词替换为"

这将搜索数组(使用本地函数)并返回字符串的剩余部分。

function returnOther($search, $array) {
    $found_key = array_search($search, $array);
    $new_string = str_replace($search . "-", "", $array[$found_key]);
    return $new_string;
}