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