Взрыв переменной $_POST

#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'])