2

I am receiving an error once this code runs. I have looked up possible solutions but everything seems to be formatted correctly.

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

I receive this error 5 times for the while loop, and 1 time for the array_push under the while loop.

Warning: Wrong parameter count for array_push()

The code works correctly! but it still calls out the error. So should I just suppress the error?

Lightness Races in Orbit
  • 378,754
  • 76
  • 643
  • 1,055
Tj tarmon
  • 35
  • 1
  • 1
  • 4

3 Answers3

6

Change:

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

to:

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

etc.

You only use array_push to push a value on to the end of a list-style array. This is not relevant here, as you're just setting a new key/value pair.

dkamins
  • 21,450
  • 7
  • 55
  • 59
  • Thank you! I have been starring down this code for almost an hour. – Tj tarmon May 23 '11 at 21:55
  • You're welcome. Please click the checkmark outline next to this answer if you are happy with it. That will indicate the question is answered and help other people find the favorite answer. Welcome to SO! – dkamins May 23 '11 at 21:57
  • Done! I tried clicking it as soon as i ran the code, but I had to wait 11 mins :/ Thanks again – Tj tarmon May 23 '11 at 22:04
2

You're mixing approaches.

Read about array_push, which doesn't do what you think it does.

array_push($array, $val) is like $array[] = $val.

You want just:

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

and

$prop['Total Searches'] = $count;
Lightness Races in Orbit
  • 378,754
  • 76
  • 643
  • 1,055
0

this will do your job,

$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;

and check http_build_query, thats what i am using.

Racooon
  • 1,468
  • 2
  • 10
  • 28