#php #arrays #string
Вопрос:
у меня есть этот код , который сохраняет значения из $POST, но одна переменная [сегменты] должна быть взорвана, но я не знаю, как этого добиться в моем коде:
$request = $this->getRequest();
if (!$id = $request->id) $this->_redirect('/' . $this->_name);
$guest = ($guestTable = new Table_Guests())->fetchRow(
$guestTable
->select()
->where('id_objects = ?', $this->getObjectId())
->where('id = ?', $id)
);
$this->view->form = $guest->form();
if ($request->isPost() amp;amp; $this->view->form->isValid($request->getPost())) {
//
implode($_POST['segments']);
$post = $_POST;
unset($post['saveBtn']);
try {
foreach ($post as $key => $value) $guest->$key = $value;
$guest->save();
$this->_helper->flashMessenger(array('info' => $this->view->translate('The changes have been saved')));
} catch (Exception $e) {
$this->_helper->flashMessenger(array('error' => $this->view->translate('Cannot save changes')));
}
$this->_redirect('/' . $this->_name);
}
$this->view->title = $this->view->translate('Guests') . ' <span>/ ' . $this->view->translate('Edit') . '</span>';
Краткая версия выходных данных :
array (size=27)
'first_name' => string 'Test' (length=4)
'segments' =>
array (size=3)
0 => string 'uno' (length=3)
1 => string 'dos' (length=3)
2 => string 'tres' (length=4)
'birthday' => string '0000-00-00' (length=10)
И одна желаемая вещь, которая должна быть, это
'segments'=> string(uno,dos,tres)
Возможно ли это?
Комментарии:
1. Вы забыли присвоить возвращаемое значение
implode
чему-либо (возможно, обратно в поле «Запись»)2.
$_POST['segments'] = implode(',', $_POST['segments'])
. Вам нужно где-то сохранить ответ на вызов. Вам также необходимо определить разделитель.3. Спасибо , Магнус, работает как заклинание 🙂 Черри тоже спасибо 🙂
Ответ №1:
Ответом было добавление
$_POST['segments'] = implode(',', $_POST['segments'])