数组问题.

WBOY
Release: 2016-06-23 13:58:25
Original
957 people have browsed it

代码如下

foreach ($url as $val){	if ($netbot->fetchlinks($val)){		$urlarray[] = $netbot->results;	}else{		echo "error :".$netbot->error;		exit;	}}
Copy after login


这里的$url是一个数组,存放地址
通过snoopy的方法, $netbot->fetchlinks($val)来获取这个url的所有link
那么,我想把所有的link放在一个数组中

$netbot->results 返回的是一个一维数组

现在的问题是: $urlarray[] = $netbot->results;

这种方式赋值,会获得一个多维数组

里面的link只有他第一次访问url的links



我想让这个$urlarray下标自动转移.
在获取第二个url的时候,赋值时,可以继承上面的下标, 从而将$urlarray转化为1维数组,

这该如何实现呢?


回复讨论(解决方案)

if条件里面再循环?

foreach($netbot->results as $v){
$urlarray[] = $v;
}

先不管 $netbot->results 取得的是什么
你在 $netbot->fetchlinks($val) 失败后就 exit 了
那么 $url 中后续的 $val 就没有机会再 fetchlinks 了
所以不应该 exit 而应该继续循环

你每次 fetchlinks 到的 url 被存放于 $urlarray 并没有参与后续的查找
所以至多是 $url 遍历结束就结束了。这样取到的是 $url 中可能存在的所有一级连接

看你的需求,似乎应该循着获取的连接一直深入下去的

假定 $netbot->results 是一个关于连接的一维数组,name
for($i=0; $i

  if ($netbot->fetchlinks($val)){ //如果有链接    $url = array_merge($url, $netbot->results); //就将连接加入搜寻队列  }}
Copy after login

是不是搞错了break和exit?

楼主放弃了吗?
应该在if的第一个条件再循环

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template