There are two mistakes in your form html code.
1) You have not specified form post method so its taking by default "get" method and you are trying to get values using post().
2) You have set the select multiple but did not make its name as array foods[].
Do like below:
<form method="post">
<div class="col-md-6">
<input type="name" placeholder="Enter name" class="form-control">
<select name="foods[]" class="selectpicker" multiple title="Choose Foods" multiple data-max-options="2" data-live-search="true">
<option value="1">Mustard</option>
<option value="2">Ketchup</option>
<option value="3">Relish</option>
</select>
</div>
<button class="btn btn-primary">Submit</button>
</form>
And change controller as below:
public function create()
{
$foods = $this->input->post('foods');
$name= $this->input->post('name');
$data = array();
foreach( $foods as $key => $value){
$data[$key]['name']=$name;
$data[$key]['foods']=$value;
}
$this->food_model->add_food($data);
Hope this will clear you and solve your issue.
var_dump($data)?