我有一个名为"servers"的数据库字段该字段每行都有一个链接,该字段内容:
>http://www.rapidshare.com/download1>http://www.rapidshare.com/download2>http://www.rapidshare.com/download3>http://www.megaupload.com/download1>http://www.megaupload.com/download2>http://www.megaupload.com/download3>http://www.fileserve.com/download1>http://www.fileserve.com/download2>http://www.fileserve.com/download3
我想创建一个包含所有服务器名称的数组,并创建更多包含链接的数组。应该是这样的:
$servers = array( 'rapidshare' => array( 'link1' => 'http://www.rapidshare.com/download1', 'link2' => 'http://www.rapidshare.com/download2', 'link3' => 'http://www.rapidshare.com/download3'), 'megaupload' => array( 'link1' => 'http://www.megaupload.com/download1', 'link2' => 'http://www.megaupload.com/download2', 'link3' => 'http://www.megaupload.com/download3'), 'fileserve' => array( 'link1' => 'http://www.megaupload.com/download1', 'link2' => 'http://www.megaupload.com/download2', 'link3' => 'http://www.megaupload.com/download3') );
这将完成任务:(确保域实际上显示在$domain变量中,因为它可能是$matches[1]…我记不清了)
$newStructure = array();
foreach($links as $link) {
preg_match("/www'.([^'.])'.com/",$link,$matches);
$domain = $matches[0];
$currentLength = count($newStructure[$domain]);
if($currentLength) {
$newStructure[$domain]['link'.($currentLength+1)] = $link;
} else {
$newStructure[$domain] = array('link1'=>$link);
}
}
$server = array(
'http://www.rapidshare.com/download1',
'http://www.rapidshare.com/download2',
'http://www.rapidshare.com/download3',
'http://www.megaupload.com/download1',
'http://www.megaupload.com/download2',
'http://www.megaupload.com/download3',
'http://www.fileserve.com/download1',
'http://www.fileserve.com/download2',
'http://www.fileserve.com/download3'
);
$match = array();
$myarray = array();
foreach($server as $v) {
// grab server name
preg_match('/'.(.+)'./', $v, $match);
$serverName = $match[1];
// initialize new array if its the first link of that particular server
if (!isset($myarray[$serverName])) {
$myarray[$serverName] = array();
}
// count server array to check how many links are there, and make next link key
$linkKey = 'link' . (count($myarray[$serverName]) + 1);
// store value
$myarray[$serverName][$linkKey] = $v;
}
print_r($myarray);
嘿,也许这会对你有所帮助。但我看不出这些键的名称(链接1、链接2等)的用途。这对你的分页无效。