#php #arrays #array-push
#php #массивы #массив-push
Вопрос:
Мне нужен массив, подобный этому:
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)
Ответ №1:
array_push добавляет новый элемент в массив с числовым индексом, в то время как вам нужен строковый индекс. Итак, вы действительно хотите это сделать:
$where['quadra_id'] = $quadra_id;
Ответ №2:
Заменить:
array_push($where, $quadra_id);
С:
$where['quadra_id'] = $quadra_id;
Ответ №3:
вам просто нужно указать индекс, я бы сделал это таким образом
$where = array();
if($quadra_id != 0) {
$where['quadra_id']= $quadra_id;
}
Ответ №4:
Замените эту строку…
array_push($where, $quadra_id);
…со следующим:
$where ['quadra_id'] = $quadra_id;
Ответ №5:
То, что вы ищете, это:
array_push($where, array('quadra_id'=>$quadra_id));
Если будет только один, вам действительно следует просто сделать:
if($quadra_id != 0) {
$where = array('quadra_id'=>$quadra_id);
}
Ответ №6:
Вы можете установить $where равным $_POST. Если у вас есть другие входные данные формы, которых не должно быть в $where, вы можете отложить их в сторону, поместив их в массив в имени ввода, вот так.
<input name='where[quadra_id]' value='' />
В этом случае значение $where будет равно $_POST[‘where’].