数组值为字符串

时间:2012-12-30 22:31:01

标签: php

我一直在搜索和搜索,找不到任何有用的东西,但这就是我想要做的。

此代码:

try{
$timeout = 2;
$scraper = new udptscraper($timeout);
$ret = $scraper->scrape('udp://tracker.openbittorrent.com:80',array('0D7EA7F06E07F56780D733F18F46DDBB826DCB65'));
print_r($ret);
}catch(ScraperException $e){
echo('Error: ' . $e->getMessage() . "<br />\n");
echo('Connection error: ' . ($e->isConnectionError() ? 'yes' : 'no') . "<br />\n");
}

输出:

Array ( [0D7EA7F06E07F56780D733F18F46DDBB826DCB65] => Array ( [seeders] => 148 [completed] => 10 [leechers] => 20 [infohash] => 0D7EA7F06E07F56780D733F18F46DDBB826DCB65 ) ) 

我希望那个播种器计入一个字符串,比如$ seeds。我该怎么做呢?

3 个答案:

答案 0 :(得分:2)

这样的东西?

$seeds = $ret['0D7EA7F06E07F56780D733F18F46DDBB826DCB65']['seeders'];

答案 1 :(得分:0)

您可以使用strval()将数字转换为字符串。

$string = strval($number);

或者您可以将其转换为字符串:

$string = (string)$number;

在您的上下文中:

$string = strval($ret['0D7EA7F06E07F56780D733F18F46DDBB826DCB65']['seeders']);

然而,奇数字符串也是数组的第一个索引,所以你也可以这样做:

$string = strval($ret[0]['seeders']);

或者如果你想只使用索引('seeders'也是第二个数组的第一个索引):

$string = strval($ret[0][0]);

如果您只想要这个数字,那么它也很容易:

$num = $ret[0][0];

答案 2 :(得分:0)

目前尚不清楚是否要将数组值(s?)指定为单独的变量(s?)或仅将其转换为字符串。通过将每个数组键分配为具有匹配数组值的单独变量,这是完成所有上述选项的好方法:

$ret_vars = array_pop($ret);
foreach ($ret_vars as $variable_name=>$variable_value) :
    ${$variable_name} = (string)$variable_value;
endforeach;

在您的原始示例中,最终会使用匹配的字符串值填充$seeders$completed$leechers$infohash。当然,请确保代码中的其他地方不使用/需要这些变量名称。如果是这种情况,只需在${}构造中添加某种唯一的前缀,例如${'ret_'.$variable_name}