Конвертировать массив массивов в Vue.js

1

Как преобразовать массив массивов в один массив в Vue.js? В моем php back-end у меня есть код ниже, который извлекает данные из базы данных. Моя проблема теперь в том, что я не знаю, как преобразовать их в моей js стороне в один массив.

Сторона PHP:

$name = DB::raw("CONCAT(emp.first_name, ' ', emp.last_name) AS name");
$nameCol = [];
$usedDate = '2018-07';
$date = 'attendance.date';
$total  = 'attendance.total';

for($i = 1; $i<32; $i++){
    if($i<10) $i = '0'.$i;
        $names = DB::table('attendance')
                 ->leftJoin('m_emp','m_emp.emp_key','=','attendance.emp_key')
                 ->select($name,$date,$total)
                 ->where(DB::raw("(DATE_FORMAT(attendance.date,'%Y-%m-%d'))"), '=', $usedDate.'-'.$i)
                 ->get();
        array_push($nameCol,$names);
}
return (array)$nameCol;

Результат выглядит так:

Изображение 174551

Внутри каждого массива выглядит так:

Изображение 174551

И, наконец, внутри это:

Изображение 174551

Могу ли я сделать для цикла на нем, чтобы преобразовать его в один массив и как? Или я могу сразу найти предмет внутри? Поскольку я пробовал поиск, используя способ, подобный этому, но я думаю, что это только поиск или работает в одном массиве (что моя причина, почему я хочу объединить их в один массив):

Сторона Vue.js

list.find( empName=> empName.name === 'John Doe')
//let assume list is the variable that receives data returned from php
//result for this one is undefined.

Любая идея как?

Теги:
arrays
vue.js

1 ответ

1
Лучший ответ

Вы можете использовать array_merge вместо array_push.

Я предполагаю, что вы используете Laravel, вам нужно преобразовать collection в array до слияния, см. Пример:

$name = DB::raw("CONCAT(emp.first_name, ' ', emp.last_name) AS name");
$nameCol = [];
$usedDate = '2018-07';
$date = 'attendance.date';
$total  = 'attendance.total';

for($i = 1; $i<32; $i++){
    if($i<10) $i = '0'.$i;
        $names = DB::table('attendance')
                 ->leftJoin('m_emp','m_emp.emp_key','=','attendance.emp_key')
                 ->select($name,$date,$total)
                 ->where(DB::raw("(DATE_FORMAT(attendance.date,'%Y-%m-%d'))"), '=', $usedDate.'-'.$i)
                 ->get();
        // use array_merge
        $nameCol = array_merge($nameCol,$names->toArray());
}
return (array)$nameCol;
  • 0
    спасибо за ввод, но результат этого такой же, как array_push .
  • 0
    @ramedju Используете ли вы Laravel в этом случае?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню