Как использовать array_push для добавления значения и ключа в массив - PullRequest
2 голосов
/ 24 мая 2011

Я получаю сообщение об ошибке после запуска этого кода.Я искал возможные решения, но все, кажется, отформатировано правильно.

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

Я получаю эту ошибку 5 раз для цикла while и 1 раз для array_push под циклом while.

Warning: Wrong parameter count for array_push()

Код работает правильно!но это все еще вызывает ошибку.Так я должен просто подавить ошибку?

Ответы [ 3 ]

6 голосов
/ 24 мая 2011

Изменение:

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

до:

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

и т.д.

Вы используете array_push только для помещения значения в конец массива в стиле списка. Это не имеет значения, поскольку вы просто устанавливаете новую пару ключ / значение.

2 голосов
/ 24 мая 2011

Вы смешиваете подходы.

Читайте о 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;
0 голосов
/ 24 мая 2011

это сделает вашу работу,

$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 , вот что я использую.

...