只解析数组中的特定值?
问题描述:
我使用Xpath解析一些信息,它返回一个简单的数组。只解析数组中的特定值?
$values = array();
Array
(
[0] => http://www.aaa.com/19364328526/
[1] => http://www.bbb.com/207341152011/
[2] => http://www.ccc.co.jp/1246623/
)
有什么办法,我可以通过阵列分析,只需要基于URL加权某些网址吗?例如。如果aaa.com存在,请仅使用aaa.com。如果没有,请检查ccc.co.jp,如果存在,则仅限于此,等等。
我只知道如何从数组中选择,当我知道什么是$ values [0]/[1]/etc不幸的是,这个数组中的链接顺序改变和/或有时不存在。
任何帮助将不胜感激!
谢谢! Tre
答
您可以使用in_array()
来检查值是否存在。我不确切知道你在做什么,但这里是一个例子。你知道所有可能的价值,你可能会回来吗?
//List domains in priority order
$weighted = array('aaa.com','bbb.com','ccc.com');
$selected_url = '';
foreach($weighted as $check) { //start with highest priority
foreach($values as $url) { //loop through all URL's
if(strpos($url,$check) !== false) {
//If a url matches priority, return it. We are finished to exit both loops
$selected_url = $url;
break 2;
}
}
}
$selected_url
应该具有最高优先级的网址,或者这将是空的,如果没有一个网址被发现。
我会循环浏览一些这样的数组列表,然后我只想去掉权重最高的URL,然后将它放到一个数组中,这个数组最后会被吐出。我会看看这个。谢谢 – tr3online
你如何定义你的URL的重量?这可能会有所作为 –
我还没有尝试,因此问题。我基本上想知道是否有办法按顺序扫描阵列。检查aaa.com,如果它有抓取整个数组条目aaa.com/xyz等。如果它不存在,请检查ccc.co.jp,如果它有抓取整个数组条目等。 – tr3online