正则表达式 (preg_match_all) 和数组

发布于 2024-12-17 16:21:09 字数 723 浏览 1 评论 0原文

这是代码:

   <?php
    $matchWith = "# http://videosite.com/id1 http://videosite.com/id2 # # http://videosite.com/id3 http://videosite.com/id4 #";

    preg_match_all('%(#)\shttp://videosite\.com/(\w+)\r{0,1}\shttp://videosite\.com/(\w+)\r{0,1}\s(#)%', $matchWith, $result);
    foreach($result[2] as $value)
    {  
    print '<a href="http://videosite.com/'.$value.'">
    First Part
    </a>';        

    }  
    foreach($result[3] as $value)
    {  
    print '<a href="http://videosite.com/'.$value.'">
    Second Part
    </a>';        
    }
    ?>

问题:

我希望它显示如下:第一部分,第二部分和第一部分第二部分。

但它显示如下:第一部分,第一部分,第二部分,第二部分。

我真心希望你能理解。 谢谢

This is the Code:

   <?php
    $matchWith = "# http://videosite.com/id1 http://videosite.com/id2 # # http://videosite.com/id3 http://videosite.com/id4 #";

    preg_match_all('%(#)\shttp://videosite\.com/(\w+)\r{0,1}\shttp://videosite\.com/(\w+)\r{0,1}\s(#)%', $matchWith, $result);
    foreach($result[2] as $value)
    {  
    print '<a href="http://videosite.com/'.$value.'">
    First Part
    </a>';        

    }  
    foreach($result[3] as $value)
    {  
    print '<a href="http://videosite.com/'.$value.'">
    Second Part
    </a>';        
    }
    ?>

The Problem:

I want it to display like this: First Part, Second Part and First Part Second Part.

But it displays it like this: First Part, First Part, Second Part, Second Part.

I really hope you understand.
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北方。的韩爷 2024-12-24 16:21:09
   <?php
    $matchWith = "# http://videosite.com/id1 http://videosite.com/id2 # # http://videosite.com/id3 http://videosite.com/id4 #";

    preg_match_all('%(#)\shttp://videosite\.com/(\w+)\r{0,1}\shttp://videosite\.com/(\w+)\r{0,1}\s(#)%', $matchWith, $result);
    for($i = 0; $i < count($result[2]); $i++){
       print '<a href="http://videosite.com/'.$result[2][$i].'">
       First Part
       </a>';
       print '<a href="http://videosite.com/'.$result[3][$i].'">
       Second Part
       </a>';     
    }
    ?>

答案假设两个数组具有并行结构。

编辑:将 $i== 更改为 $i++

   <?php
    $matchWith = "# http://videosite.com/id1 http://videosite.com/id2 # # http://videosite.com/id3 http://videosite.com/id4 #";

    preg_match_all('%(#)\shttp://videosite\.com/(\w+)\r{0,1}\shttp://videosite\.com/(\w+)\r{0,1}\s(#)%', $matchWith, $result);
    for($i = 0; $i < count($result[2]); $i++){
       print '<a href="http://videosite.com/'.$result[2][$i].'">
       First Part
       </a>';
       print '<a href="http://videosite.com/'.$result[3][$i].'">
       Second Part
       </a>';     
    }
    ?>

Answer assumes that the two arrays have a parallel structure.

EDIT: Changed $i== to $i++

记忆消瘦 2024-12-24 16:21:09

这是你想要的吗?

for($i = 0; $i < count($result); $i++)
{  
    print '<a href="http://videosite.com/'.$result[$1][2].'">
    First Part
    </a>';        

    print '<a href="http://videosite.com/'.$result[$1][3].'">
    Second Part
    </a>'; 
}

Is this what you want?

for($i = 0; $i < count($result); $i++)
{  
    print '<a href="http://videosite.com/'.$result[$1][2].'">
    First Part
    </a>';        

    print '<a href="http://videosite.com/'.$result[$1][3].'">
    Second Part
    </a>'; 
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文