Я использую laravel 5. Я запрашиваю даты из этого запроса:
$data = DB::table('itemregistrations')
->select('itemregistrations.dd', 'itemregistrations.mm', 'itemregistrations.yy')
->where('itemregistrations.itemregistrationid', $id)
->get();
Я хочу получить значение, которое нужно поместить в массив, чтобы я мог преобразовать массив в строку. Я не могу взорвать его в таком формате.
dd($data);
произвести это:
Collection {#521 ▼
#items: array:1 [▼
0 => {#515 ▼
+"dd": 15
+"mm": "0"
+"yy": 2007
}
]
}
Как превратить этот результат в:
0 => {15, 0, 2007}
Спасибо



почему бы вам не преобразовать коллекцию в массив с помощью метода toArray (), а затем просто выполнить json_encode для полученного массива. позже вы даже можете передать его в своем ответе.
Надеюсь, это поможет другим ..
Я нахожу решение, основанное на этих комментариях к этому вопросу здесь:
Как мне преобразовать объект json в строку в php?
Я модифицирую свой код:
//query tarikh masuk
$datatarikh = DB::table('itemregistrations')
->select('itemregistrations.dd', 'itemregistrations.mm', 'itemregistrations.yy')
->where('itemregistrations.itemregistrationid', $id)
->get();
//**************** format the value of the date************************
$data = json_decode($datatarikh, true);
$val_arr = array();
foreach($data as $val)
{
foreach($val as $key => $value)
{
$val_arr[] = $value;
}
}
$result = implode("-", $val_arr);
Он изменяет ассоциативный массив на индексированный массив, который нужно свернуть. Спасибо за ваш вклад.
Из массива:
array:1 [▼
0 => array:3 [▼
"pdrm_dd" => 15
"pdrm_mm" => "01"
"pdrm_yy" => 2007
]
]
Результат вывода:
"15-01-2007"
Вам действительно нужно показать код: какие у вас переменные, вызываемые и т. д.
Array.prototype.slice.apply(Object.values({"dd": 15, "mm":"0", "yy": 2007})).map((el) => parseInt(el))