我有四个输入:
<form id="query" method="POST">
<input type="text" name="mainUrl" style="width:350px; border-radius:3px;">
<input type="text" name="competitorUrl1" style="width:350px; border-radius:3px;">
<input type="text" name="competitorUrl2" style="width:350px; border-radius:3px;" >
<input type="text" name="competitorUrl3" style="width:350px; border-radius:3px;">
</form>
我返回这样的输入:
public function getAlexaAverageRankData($params){
$return = [];
if (!empty($params["mainUrl"])){
$return["mainUrl"] = $this->getAverageRank($params["mainUrl"]);
}
if (!empty($params["competitorUrl1"])){
$return["competitorUrl1"] = $this->getAverageRank($params["competitorUrl1"]);
}
if (!empty($params["competitorUrl2"])){
$return["competitorUrl2"] = $this->getAverageRank($params["competitorUrl2"]);
}
if (!empty($params["competitorUrl3"])){
$return["competitorUrl3"] = $this->getAverageRank($params["competitorUrl3"]);
}
return $return;
}
其中params是以下参数:
protected function buildQueryParams($site) {
$params = array(
'Action' => self::$ActionName,
'ResponseGroup' => self::$ResponseGroupName,
'AWSAccessKeyId' => $this->accessKeyId,
'Timestamp' => self::getTimestamp(),
'Count' => self::$NumReturn,
'Start' => self::$StartNum,
'SignatureVersion' => self::$SigVersion,
'SignatureMethod' => self::$HashAlgorithm,
'Url' => $site
);
ksort($params);
$keyvalue = array();
foreach($params as $k => $v) {
$keyvalue[] = $k . '=' . rawurlencode($v);
}
return implode('&',$keyvalue);
}
这是我要回的数组:
$nice_array = array(
'Rank' => $info->TrafficData->Rank,
'Links In Count' => $info->ContentData->LinksInCount,
'Site' => $info->getAlexaAverageRankData($params),
);
return $nice_array;
问题是我的数组现在只包含Rank
和Links In Count
。
我还需要在数组中为用户放入该输入的每个url创建一个条目。我用来返回网址的方法正在运行,但我需要将它们回显到nice_array
。我怎样才能做到这一点?
如果有些事情不清楚,我很抱歉,相信我,我也不清楚......我是初学者,我不知道如何解决这个问题。我的数组结构现在看起来像这样:
["data"]=>
object(stdClass)#227 (2) {
["mainUrl"]=>
object(stdClass)#233 (2) {
["Rank"]=>
object(stdClass)#236 (1) {
["0"]=>
string(8) "20231208"
}
["Links In Count"]=>
object(stdClass)#235 (0) {
}
}
["competitorUrl1"]=>
object(stdClass)#239 (2) {
["Rank"]=>
object(stdClass)#240 (1) {
["0"]=>
string(5) "24971"
}
["Links In Count"]=>
object(stdClass)#241 (1) {
["0"]=>
string(3) "640"
}
}
}
如果有什么不清楚的问我,我会尝试向你解释......我很抱歉这个含糊不清的问题,我正在尽力使事情清楚。感谢您的时间和帮助。 (更多信息:https://gist.github.com/michaelwowro/4130431)
答案 0 :(得分:1)
如果我理解你,
如果你改变你的html表单代码:
<input type="text" name="competitorUrl[1]" style="width:350px; border-radius:3px;">
<input type="text" name="competitorUrl[2]" style="width:350px; border-radius:3px;">
<input type="text" name="competitorUrl[3]" style="width:350px; border-radius:3px;">
您可以获取数据数组格式,例如:
$competitorUrls = $request->get('competitorUrl');
foreach($competitorUrls as $url)
{
// Your codes for every url
}
当你需要添加一些变量和密钥时;
$competitorUrls["yourkey"] = "your value";
祝你好运。
答案 1 :(得分:0)
可能是$ params在行中是空的
'Site' => $info->getAlexaAverageRankData($params),