PHP - Сложность работы с массивом для динамического создания - PullRequest
0 голосов
/ 19 мая 2011

Мне нужен такой массив:

array('quadra_id'=>$quadra_id);

Дело в том, что я создам его динамически, в соответствии с тем, что отправлено формой.

$where = array();

if($quadra_id != 0) {
   array_push($where, $quadra_id);
}

Этовозвращает мне это:

array
  0 => string '8762' (length=3)

И мне нужно это:

array
  'quadra_id' => string '8762' (length=3)

Ответы [ 6 ]

4 голосов
/ 19 мая 2011

array_push добавляет новый элемент в массив с числовым индексом, в то время как вам нужен строковый индекс.Итак, вы действительно хотите сделать это:

$where['quadra_id'] = $quadra_id;
2 голосов
/ 19 мая 2011

Заменить эту строку ...

array_push($where, $quadra_id);

... со следующим:

$where ['quadra_id'] = $quadra_id;

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

вам просто нужно указать индекс, я бы сделал это так

$where = array();

if($quadra_id != 0) {
   $where['quadra_id']= $quadra_id;
}
2 голосов
/ 19 мая 2011

Заменить:

array_push($where, $quadra_id);

На:

$where['quadra_id'] = $quadra_id;
0 голосов
/ 19 мая 2011

Вы можете установить $ где равно $ _POST.Если у вас есть другие входные данные формы, которые не должны быть в $ where, вы можете отложить их, поместив их в массив во входном имени, например так.

<input name='where[quadra_id]' value='' />

В этом случае $ where будетустановить в $ _POST ['где'].

0 голосов
/ 19 мая 2011

То, что вы ищете:

array_push($where, array('quadra_id'=>$quadra_id));

Если будет только один, вы должны просто сделать:

if($quadra_id != 0) {    
  $where = array('quadra_id'=>$quadra_id);
}
...