-1

我有以下文本字符串:“园艺、景观美化、足球、3D 建模”

我需要 PHP 来挑选短语“ Football ”之前的字符串。

因此,无论数组的大小如何,代码都将始终扫描短语“ Football ”并检索紧接在它之前的文本。

到目前为止,这是我的(蹩脚的)尝试:

$array = "Swimming,Astronomy,Gardening,Rugby,Landscaping,Football,3D Modelling";
$find = "Football";
$string = magicFunction($find, $array);
echo $string; // $string would = 'Landscaping'

对此的任何帮助将不胜感激。

非常感谢

4

3 回答 3

2
//PHP 5.4
echo explode(',Football', $array)[0]

//PHP 5.3-
list($string) = explode(',Football', $array);
echo $string;
于 2012-12-18T16:43:36.793 回答
2
$terms = explode(',', $array);
$index = array_search('Football', $terms);
$indexBefore = $index - 1;

if (!isset($terms[$indexBefore])) {
    trigger_error('No element BEFORE');
} else {
    echo $terms[$indexBefore];
}
于 2012-12-18T16:45:50.307 回答
1
$array = array("Swimming","Astronomy","Gardening","Rugby","Landscaping","Football","3D" "Modelling");
$find = "Football";
$string = getFromOffset($find, $array);
echo $string; // $string would = 'Landscaping'

function getFromOffset($find, $array, $offset = -1)
{
    $id = array_search($find, $array);
    if (!$id)
        return $find.' not found';
    if (isset($array[$id + $offset]))
        return $array[$id + $offset];
    return $find.' is first in array';
}

您还可以将偏移量设置为与之前的 1 不同。

于 2012-12-18T16:50:54.463 回答