Я использую Codeigniter в качестве основы и создаю массив, как показано ниже, используя входные параметры из формы.
$data = array(
'generated_id' => $this->input->post('generated_id'),
'one' => $this->input->post('one'),
'two' => $this->input->post('two'),
'three' => $this->input->post('three'),
'modified_date' => date('Y-m-d H:i:s'),
'modified_user_id' => $this->session->userdata('user_id')
);
Что я хочу сделать, если значения из полей ввода пустые, я хочу установить значение конкретной позиции массива в NULL.
Я использую функцию ниже, чтобы сделать это.
$data = array_filter($data,function($value, $key){
if(empty($value))
return NULL;
else
return $value;
}, ARRAY_FILTER_USE_BOTH);
Но я в конечном итоге с ошибкой ниже.
Use of undefined constant ARRAY_FILTER_USE_BOTH - assumed 'ARRAY_FILTER_USE_BOTH'
Есть ли простой способ сделать это или как я могу это исправить?
Поскольку вы не используете $key
в вашем обратном вызове, вам не нужно ARRAY_FILTER_USE_BOTH
флаг тоже. Ваша функция может быть упрощена до:
$data = array_filter($data);
Серьезно, это делает то же самое.
Что я хочу сделать, если значения из полей ввода пустые, я хочу установить значение конкретной позиции массива в
NULL
,
array_filter
не буду делать это для начала. Он полностью удалит «пустые» элементы, а не установит их null
, Ты хочешь:
$data = array_map(function ($value) { return $value ?: null; }, $data);
Это установит любые значения, которые falsey (пустые строки, 0
пустые массивы) в null
,
Других решений пока нет …