PHP如何在循环内合并两个数组

佩尔比特

我的下面的代码有问题,这使我发疯。我想做的是将给定数组与一个句子进行比较,然后我需要知道它们在每次出现时在句子中的位置,到目前为止,脚本仅返回一个数组,例如,Marta名称在其中的位置在句子中找到。我试图将所有结果合并到一个数组中,但此刻我有点迷茫。我希望有人可以给我一些帮助的线索。最好的祝福。

$sentence = 'Maria is Maria and Marta is Marta.';
$womennames = array("Maria","Marta");    

function poswomen($chain, $words){

    foreach($words as $findme){
        $valida_existe = substr_count($chain,$findme);
        $largo_encuentra = strlen($findme);
        $posicion = array();

        for($x=0; $x < strlen($chain); $x++){
            $posic_x = strpos($chain, $findme, $x);
            if($posic_x >= 0){              
                $posicion[] = $posic_x;                    
                $x = $x+$largo_encuentra;
            }            
        }

        $posicion = array_unique($posicion);        
        $posicion = implode(",",$posicion);   

    }
    return $posicion;
}

poswomen($sentence, $womennames); 
print_r (poswomen($sentence, $womennames));
用户1978142

就像barmar所说的那样,您的位置不断重置,您需要在该位置之外进行设置,然后添加当前找到的位置以继续进行。考虑以下示例:

$sentence = 'Maria is Maria and Marta is Marta.';
$women_names = array('Maria', 'Marta');
$pos = 0;
$positions = array();

foreach($women_names as $name) {
    while (($pos = strpos($sentence, $name, $pos))!== false) {
        $positions[$name][] = $pos;
        $pos += strlen($name);
    }
    $positions[$name] = implode(', ', $positions[$name]);
}

echo '<pre>';
print_r($positions);
echo '</pre>';

样本输出:

Array
(
    [Maria] => 0, 9
    [Marta] => 19, 28
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在php中合并两个数组?[PHP]

来自分类Dev

如何在PHP中合并两个数组

来自分类Dev

如何合并两个数组并使用PHP合并值

来自分类Dev

如何在JS中合并两个数组?

来自分类Dev

如何在PHP中通过其值合并两个数组?

来自分类Dev

如何根据索引php合并两个数组?

来自分类Dev

在PHP中合并两个数组

来自分类Dev

在PHP中合并两个数组?

来自分类Dev

在PHP中合并两个数组

来自分类Dev

PHP合并两个数组与范围

来自分类Dev

在PHP中合并两个数组

来自分类Dev

如何在两个不同数组的特定索引处合并两个数组值

来自分类Dev

如何串联或合并两个数组

来自分类Dev

如何合并两个数组

来自分类Dev

如何合并两个数组?

来自分类Dev

如何在一个数组上合并两个数组

来自分类Dev

PHP:循环两个数组

来自分类Dev

php循环通过两个数组

来自分类Dev

如何在PHP中比较两个数组与条件

来自分类Dev

如何在php中连接两个数组?

来自分类Dev

如何在字符数组中合并两个数组以通过网络发送

来自分类Dev

如何在 Kotlin 中将两个数组与参数数组合并为一个数组?

来自分类Dev

如何在打字稿中动态合并两个数组对象?

来自分类Dev

如何在Bash中像拉链一样合并两个数组?

来自分类Dev

Laravel-保存多对多,如何在foreach中合并两个数组

来自分类Dev

如何在打字稿中动态合并两个数组对象?

来自分类Dev

如何在matlab中将两个数组合并为单个直方图

来自分类Dev

如何在一个变量中合并两个数组?

来自分类Dev

如何在C中以交替顺序将两个数组合并为单个数组?