如何使用array_push向数组添加值和键

时间:2011-05-23 21:47:25

标签: php array-push

此代码运行后,我收到错误。我查找了可能的解决方案,但似乎所有内容都已正确格式化。

$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循环下收到array_push 1次。

Warning: Wrong parameter count for array_push()

代码正常运行!但它仍然会调出错误。那么我应该压制错误吗?

3 个答案:

答案 0 :(得分:6)

变化:

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

为:

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

您只能使用array_push将值推送到列表样式数组的末尾。这与此无关,因为您只需设置一个新的键/值对。

答案 1 :(得分: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;

答案 2 :(得分: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,这就是我正在使用的内容。