Php 为什么';此阵列是否要删除其重复项?

Php 为什么';此阵列是否要删除其重复项?,php,arrays,Php,Arrays,我有一个例程,它查看基本域URL(),查找所有链接,然后查找每个页面的所有图像及其属性。这在两个循环中完成: 第一个用于链接,在每个链接的每个循环内 每个页面上找到的每个图像一个 我一直在使用我乐队的网站作为测试平台,顶部的每个页面都有一个特色文章的“聚光灯”部分,设置为图像滑块。所以,我只想要一个网站的唯一图像url,但我正在尝试的每一件事仍然让重复通过。我在构建阵列时尝试过重复检查,但没有成功。但后来我发现了这个链接:和评论,但这也不起作用 让我们从我从乐队网站上搜集的数据样本开始: A

我有一个例程,它查看基本域URL(),查找所有链接,然后查找每个页面的所有图像及其属性。这在两个
循环中完成:

  • 第一个用于链接,在每个链接的每个循环内
  • 每个页面上找到的每个图像一个
我一直在使用我乐队的网站作为测试平台,顶部的每个页面都有一个特色文章的“聚光灯”部分,设置为图像滑块。所以,我只想要一个网站的唯一图像url,但我正在尝试的每一件事仍然让重复通过。我在构建阵列时尝试过重复检查,但没有成功。但后来我发现了这个链接:和评论,但这也不起作用

让我们从我从乐队网站上搜集的数据样本开始:

Array
(
[http://darwenstheory.com/] => Array
    (
        [0] => Array
            (
                [3] => Array
                    (
                        [url] => http://darwenstheory.com/images/dtheory-spotlight-vidclips.jpg
                        [alt] => Ventura Theater Video Clips Posted!
                        [w] => 644
                        [h] => 202
                        [ratio] => 3.2
                    )

            )

        [1] => Array
            (
                [3] => Array
                    (
                        [url] => http://darwenstheory.com/images/dtheory-spotlight-vtpix.jpg
                        [alt] => Video Clips Posted!
                        [w] => 644
                        [h] => 202
                        [ratio] => 3.2
                    )

            )

        [2] => Array
            (
                [3] => Array
                    (
                        [url] => http://darwenstheory.com/images/dtheory-spotlight-merch.jpg
                        [alt] => Photos from Ventura Theater!
                        [w] => 644
                        [h] => 202
                        [ratio] => 3.2
                    )

            )

        [3] => Array
            (
                [4] => Array
                    (
                        [url] => http://darwenstheory.com/wp-content/uploads/2011/10/peepdestroyflyer.jpg
                        [alt] => 
                        [w] => 533
                        [h] => 800
                        [ratio] => 0.7
                    )

            )
[http://darwenstheory.com/2011/01/11/ventura-theater-video-clips-posted/] => Array
    (
        [0] => Array
            (
                [3] => Array
                    (
                        [url] => http://darwenstheory.com/images/dtheory-spotlight-vidclips.jpg
                        [alt] => Ventura Theater Video Clips Posted!
                        [w] => 644
                        [h] => 202
                        [ratio] => 3.2
                    )

            )

        [1] => Array
            (
                [3] => Array
                    (
                        [url] => http://darwenstheory.com/images/dtheory-spotlight-vtpix.jpg
                        [alt] => Video Clips Posted!
                        [w] => 644
                        [h] => 202
                        [ratio] => 3.2
                    )

            )

        [2] => Array
            (
                [3] => Array
                    (
                        [url] => http://darwenstheory.com/images/dtheory-spotlight-merch.jpg
                        [alt] => Photos from Ventura Theater!
                        [w] => 644
                        [h] => 202
                        [ratio] => 3.2
                    )

            )
在上面的数组中,我不应该为第二个索引设置前三个图像URL(这是域上子页面的URL)。 我用于构建阵列的简化版本:

foreach($links as $link)
{
    $images = get_page_images($link); //array;
    foreach($images as $image)
    {
        //i have some things here to setup a "score" for each image
        $data['scrape'][$link][][$score] = array('url' => $image['url'], 'alt' => $image['alt'], 'w' => $image['w'], 'h' => $image['h'], $ratio);
    }
}
$urls = array();

foreach($links as $link)
{
    $images = get_page_images($link); //array;
    foreach($images as $image)
    {
        if (!$urls[$image['url']])       // <- dupe check added
        {
            $urls[$image['url']] = true; // <- dupe check added

            //i have some things here to setup a "score" for each image
            $data['scrape'][$link][][$score] = array('url' => $image['url'], 'alt' => $image['alt'], 'w' => $image['w'], 'h' => $image['h'], $ratio);
        }
    }
}
我觉得我把这件事复杂化了,但我不知道怎么做,也不知道为什么。我是来学习的,不管是我愚蠢还是别的什么

我只希望我正在构建的上述数组在最深层数组中的“url”键没有重复值


提前非常感谢您的批评、帮助和一切

在构建阵列时,我仍然会执行重复检查:

foreach($links as $link)
{
    $images = get_page_images($link); //array;
    foreach($images as $image)
    {
        //i have some things here to setup a "score" for each image
        $data['scrape'][$link][][$score] = array('url' => $image['url'], 'alt' => $image['alt'], 'w' => $image['w'], 'h' => $image['h'], $ratio);
    }
}
$urls = array();

foreach($links as $link)
{
    $images = get_page_images($link); //array;
    foreach($images as $image)
    {
        if (!$urls[$image['url']])       // <- dupe check added
        {
            $urls[$image['url']] = true; // <- dupe check added

            //i have some things here to setup a "score" for each image
            $data['scrape'][$link][][$score] = array('url' => $image['url'], 'alt' => $image['alt'], 'w' => $image['w'], 'h' => $image['h'], $ratio);
        }
    }
}
$url=array();
foreach($links作为$link)
{
$images=get_page_images($link);//数组;
foreach($images作为$image)
{
如果(!$url[$image['url']])/$image['alt'],'w'=>$image['w'],'h'=>$image['h'],$ratio);
}
}
}

这是一个值得关注的问题,但我建议立即启动一个基本数组来比较每个迭代,并且仅在基本数组中不存在键时才添加到数组中

$image_arr = array();
foreach($links as $link)
{

  $images = get_page_images($link); //array;
  foreach($images as $image)
  {
      if(!in_array($image['url'], $image_arr))
      {  
            //i have some things here to setup a "score" for each image
            $data['scrape'][$link][][$score] = array('url' => $image['url'], 'alt' => $image['alt'], 'w' => $image['w'], 'h' => $image['h'], $ratio);
            $images_arr[$image['url'] = $image['url';
      }
  }
}

谢谢我曾认为,可以说,只要“动态检查”,就可以通过检查我正在构建的实际阵列而不是单独的阵列来工作。但是,我想如果这就是需要的!