2012-12-30 278 views
0

我一直在搜索和搜索,找不到任何可行的東西,但這是我想要做的。將數組值轉換爲字符串

此代碼:

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)) 

而且我要的是播種機算成一個字符串,如$種子。我會如何去做這件事?

+1

聽起來就像你想要[提取](http://php.net/manual/en/function.extract.php)。 – cmbuckley

回答

2

像這樣的東西?

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

你先生真棒! – user1938622

0

您可以將用戶strval()轉換爲字符串。

$string = strval($number);

,或者你可以將它轉換成字符串:

$string = (string)$number;

在你的情況下,這將是:

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

但是,這種奇怪的字符串也陣列的第一個索引,所以你也可以這樣做:

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

,或者如果你想OT只使用索引(「播種機」,也是第二個數組的第一個索引):

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

,如果你只是想號碼,然後很容易太:

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

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}