引用strposa中的当前数组元素

时间:2012-09-25 17:35:54

标签: php arrays search strpos

我正在使用简单的 strposa PHP函数来搜索html页面中的文字。

$ItemsToGet[ ] = "Alpha One";
$ItemsToGet[ ] = "Alpha Fifty"
$ItemsToGet[ ] = "FoxTrot Twelve";
$ItemsToGet[ ] = "Bravo Six";
$ItemsToGet[ ] = "Alpha Niner";

if ( strposa( $rawPage, $itemsToGet, 1 ) !== false )
    {
    //echo the current $itemsToGet aka the element that got the match from
    //$itemsToGet
    }


function strposa( $haystack, $needles = array( ), $offset = 0 ) {
$chr = array( );
foreach ( $needles as $needle )
    {
    $res = strpos( $haystack, $needle, $offset );
    if ( $res !== false )
        $chr[ $needle ] = $res;
    }
if ( empty( $chr ) )
    return false;
return min( $chr );

}

如果 strposa 找到一个匹配并遍历括号,我想将它当前所在的数组项添加到另一个数组中......就像这样......

$foundArray[ ] = $itemsToGet;

但是,我不确定如何引用当前元素。使用current($itemsToGet)始终返回第一个元素。这甚至可能吗?我是否必须找到 strposa 之外的其他内容?

1 个答案:

答案 0 :(得分:0)

这将返回$ needle而不是位置。

function strposa( $haystack, $needles = array( ), $offset = 0 ) {
$chr = array( );
foreach ( $needles as $needle )
    {
    $res = strpos( $haystack, $needle, $offset );
    if ( $res !== false )
        return $needle;
    }
return false

}