2

一旦此代码运行,我就会收到错误消息。我已经查找了可能的解决方案,但一切似乎都正确格式化。

$searched = 'searched';    
$count    = '59';
$prop     = Array();

$i = 0;
while ($i++ <= 4) {
    array_push($prop[$i] = Array(
         'text' => $searched,
         'href' => 'http://mysite.com/?search=' . str_replace(' ', '+', $searched)
    ));
}

array_push($prop['Total Searches'] = $count);

我在 while 循环中收到了 5 次此错误,在 while 循环下收到了 1 次 array_push 错误。

Warning: Wrong parameter count for array_push()

代码工作正常!但它仍然会指出错误。那么我应该压制错误吗?

4

3 回答 3

6

改变:

array_push($prop['Total Searches'] = $count);

到:

$prop['Total Searches'] = $count;

等等

您仅使用 array_push 将值推送到列表样式数组的末尾。这在这里无关紧要,因为您只是设置了一个新的键/值对。

于 2011-05-23T21:49:55.317 回答
2

你正在混合方法。

阅读关于array_push,它不会做你认为它做的事情。

array_push($array, $val)就像$array[] = $val

只想

$prop[$i] = Array(
     'text' => $searched,
     'href' => 'http://mysite.com/?search=' . str_replace(' ', '+', $searched)
));

$prop['Total Searches'] = $count;
于 2011-05-23T21:51:13.803 回答
0

这会做你的工作,

$searched = 'searched';    
$count    = '59';
$prop     = Array();
$search_terms = Array();

$i = 0;
while ($i <= 4) 
{
   $search_terms['text'] = $searched;
   $searched = str_replace(' ', '+', $searched);
   $search_terms['href'] = 'http://mysite.com/?search='.$searched;
   array_push($prop, $search_terms);
   $i++;
}

$prop['Total Searches'] = $count;

并检查http_build_query,这就是我正在使用的。

于 2011-05-23T22:02:14.917 回答