You can do this yourself, as follows:
<?php
// Seu array inicial
$array = array("2018-03-28", "jantar", "lanche","2018-03-29", "lanche");
// Declaração do array final e variável auxiliar de data
$dados1 = array();
$data_atual = null;
foreach ($array as $key => $value) {
// Verifica se o $value é uma data
if (date('Y-m-d', strtotime($value)) == $value) {
// Salva qual a data atual para o array bidimensional
$data_atual = $value;
}else{
// Adiciona o tipo de refeição na data atual
$dados1[$data_atual][] = $value;
}
}
var_dump($dados1);
?>
The var_dump will output a response of type:
array (2) {["2018-03-28"] = > array (2) {[0] = > string (6) "dinner" [1] = > string (6) "snack"} ["2018-03-29"] = > array (1) {[0] = > string (6) "snack"}}
Edit for date cases in "2018-03-1" format:
<?php
$array = array("2018-03-1", "jantar", "lanche","2018-03-29", "lanche");
$dados1 = array();
$data_atual = null;
foreach ($array as $key => $value) {
$data1 = date('Y-m-d', strtotime($value));
$data2 = $value;
// Verifica se o $value é uma data
if (strtotime($data1) == strtotime($data2)) {
$data_atual = $value;
}else{
$dados1[$data_atual][] = $value;
}
}
var_dump($dados1);
?>
The var_dump
will output a response of type:
array (2) {["2018-03-1"] = > array (2) {[0] = > string (6) "dinner" [1] = > string (6) "snack"} ["2018-03-29"] = > array (1) {[0] = > string (6) "snack"}}