首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用具有url作为键的关联数组?

问如何使用具有url作为键的关联数组?
EN

Stack Overflow用户
提问于 2019-09-05 00:39:51
回答 2查看 177关注 0票数 1

我使用的是Josh Fraser的RollingCurl.php

目前,这是我的Skript的输出:(由于每个网站的加载速度不同,每次的顺序都不同。)

代码语言:javascript
复制
array(17) { [0]=> string(6) "Google" [1]=> string(6) "Google" [2]=> string(6) "Google" [3]=> string(6) "Google" [4]=> string(73) "MSN Deutschland | Nachrichten, Sport, Wetter, Hotmail & Outlook Login" [5]=> string(30) "Microsoft - Official Home Page" [6]=> string(8) "��Ѷ��ҳ" [7]=> string(27) "百度一下,你就知道" [8]=> string(44) "WordPress.com: Create a Free Website or Blog" [9]=> string(71) "Blogger.com - Create a unique and beautiful blog. It’s easy and free." [10]=> string(9) "Wikipedia" [11]=> string(33) "Sign in to your Microsoft account" [12]=> string(7) "YouTube" [13]=> string(27) "Featured Content on Myspace" [14]=> string(12) "新浪首页" [15]=> string(12) "Yahoo! JAPAN" [16]=> string(35) "Twitter. Alles, was gerade los ist." }

数字的瞬间,我将使用$url作为键,将其设置为关联数组。如下所示:

代码语言:javascript
复制
array(17) { [google]=> string(6) "Google" [msn]=> string(73) "MSN Deutschland | Nachrichten, Sport, Wetter, Hotmail & Outlook Login" ...

我的观点:

代码语言:javascript
复制
<?php

$array = [];

// a little example that fetches a bunch of sites in parallel and echos the page title and response info for each request
function request_callback($response, $info) {
    global $array;

    // parse the page title out of the returned HTML
    if (preg_match("~<title>(.*?)</title>~i", $response, $out)) {
        $array[] = $out[1];
    }
}

require("RollingCurl.php");

// top 20 sites according to alexa (11/5/09)
$urls = array("http://www.google.com",
              "http://www.facebook.com",
              "http://www.yahoo.com",
              "http://www.youtube.com",
              "http://www.live.com",
              "http://www.wikipedia.com",
              "http://www.blogger.com",
              "http://www.msn.com",
              "http://www.baidu.com",
              "http://www.yahoo.co.jp",
              "http://www.myspace.com",
              "http://www.qq.com",
              "http://www.google.co.in",
              "http://www.twitter.com",
              "http://www.google.de",
              "http://www.microsoft.com",
              "http://www.google.cn",
              "http://www.sina.com.cn",
              "http://www.wordpress.com",
              "http://www.google.co.uk");
$rc = new RollingCurl("request_callback");
$rc->window_size = 20;
foreach ($urls as $url) {
    $request = new RollingCurlRequest($url);
    $rc->add($request);
}
$rc->execute();

var_dump($array);
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-05 01:48:47

代码语言:javascript
复制
$array[$info["url"]] = $out[1];
票数 1
EN

Stack Overflow用户

发布于 2019-09-05 02:22:06

PHP中的数组实际上是有序映射,键值可以是整数或字符串。如果在向数组添加值时没有指定键,PHP将默认使用索引键,例如0, 1, 2等。

当您将元素添加到像这样的数组中时,您并没有指定一个键,因为$array[] = $out[1];默认使用索引键。

如果您想使用关联关键字(例如名称),则需要在将其值添加到数组时指定关键字:$array[$somevalue] = $out[1]。在本例中,$somevalue将是您想要用作关键字的URL字符串,无论它来自何处。

但是,请注意,这些密钥需要是唯一的。如果您尝试向$array['google']添加值,而该键/值对已经存在,则新值将覆盖旧值。对于您的目的来说,这可能并不理想。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57792625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档