douyong6589 2016-07-20 19:23
浏览 86
已采纳

如何在PHP中打印数组数组的所有第一个值?

I am using the 'PHP Simple HTML DOM Parser' library. My code basically loops through my different sites and lists all the relevant anchors I need, my question is: how do I print the 1st value of the href in the anchor of the "selector" in each of the $memb(n) variables in the array of $team.

This is my code:

$memb1 = 'http://www.xyz1.org';
$memb2 = 'http://www.abc3.org';
$memb(n) = '...etc...etc'

$teams = array(
    array("url" => $memb1, "selector" => ".product-list >
                      table:nth-child(1) >
                      tbody:nth-child(1) >
                      tr:nth-child(2) >
                      td:nth-child(2) > a"),
    array("url" => $memb2, "selector" => ".product-list >
                      table:nth-child(1) >
                      tbody:nth-child(1) >
                      tr:nth-child(2) >
                      td:nth-child(2) > a"),
    array("url" => $memb(n), "selector" => ".product-list >
                      table:nth-child(1) >
                      tbody:nth-child(1) >
                      tr:nth-child(2) >
                      td:nth-child(2) > a"),...etc...etc

When running the foreach loop like this:

foreach($teams as $site) {
    $url = $site["url"];
    $html = file_get_html($url);
    foreach ($html->find($site["selector"]) as $a) {
        $links[] = $a->href;
    }
}
?>
<pre>
<?php print_r($links);?>
</pre>

I get all the selected anchors I wanted from all the $memb variables all together, yet i'm trying to print the 1st value of the href in the anchor of the "selector" in each of the $memb(n) variables in the array of $team, yet I can't find a way to do this.

I already tried print_r(array_values($links)[0]); yet I get only the 1st anchor from $memb1 and it stops there, it doesn't continue to print the first anchor of $memb2 and so on.

How can I print the 1st anchor (index 0) from every different $memb site?

  • 写回答

2条回答 默认 最新

  • duankuixi1930 2016-07-20 19:26
    关注

    If I get you right, than try this:

    foreach($teams as $site) {
        $url = $site["url"];
        $html = file_get_html($url);
        foreach ($html->find($site["selector"]) as $a) {
            $links[] = $a->href;
            break;
        }
    }
    

    or, you can do it a little bit optimized:

    foreach($teams as $site) {
        $url = $site["url"];
        $html = file_get_html($url);
        $link = $html->find($site["selector"], 0);
        if (!empty($link)) $links[] = $link->href;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。