如何从Variable中删除数组中的数组?
问题描述:
I want to remove array from arrays but array is in $variable
. I did not find any example which has array in array for $variable
.
Function:
public function firstHourTrades()
{
$user_id = Auth::user()->id;
$first_hour = DB::table('finaltrade')
->select(DB::raw('count(*) as first'))
->join('exchanges', 'finaltrade.exchange_id', '=', 'exchanges.id')
->where('finaltrade.user_id', $user_id)
->whereTime(DB::raw('IF(finaltrade.buy_datetime<finaltrade.sell_datetime, finaltrade.buy_datetime, finaltrade.sell_datetime) '), '>=', DB::raw('exchanges.start_time'))
->whereTime(DB::raw('IF(finaltrade.buy_datetime<finaltrade.sell_datetime, finaltrade.buy_datetime, finaltrade.sell_datetime) '), '<=', DB::raw("ADDTIME(exchanges.start_time, '01:00:00')"))
->get();
$last_hour = DB::table('finaltrade')
->select(DB::raw('count(*) as last'))
->join('exchanges', 'finaltrade.exchange_id', '=', 'exchanges.id')
->where('finaltrade.user_id', $user_id)
->whereTime(DB::raw('IF(finaltrade.buy_datetime<finaltrade.sell_datetime, finaltrade.buy_datetime, finaltrade.sell_datetime) '), '<=', DB::raw('exchanges.close_time'))
->whereTime(DB::raw('IF(finaltrade.buy_datetime<finaltrade.sell_datetime, finaltrade.buy_datetime, finaltrade.sell_datetime) '), '>=', DB::raw("SUBTIME(exchanges.close_time, '01:00:00')"))
->get();
$other_hours = DB::table('finaltrade')
->select(DB::raw('count(*) as other'))
->join('exchanges', 'finaltrade.exchange_id', '=', 'exchanges.id')
->where('finaltrade.user_id', $user_id)
->whereRaw('finaltrade.created_at NOT BETWEEN exchanges.start_time AND DATE_ADD(exchanges.start_time, INTERVAL 1 HOUR)')
->whereRaw('finaltrade.created_at NOT BETWEEN exchanges.close_time AND DATE_SUB(exchanges.close_time, INTERVAL 1 HOUR)')
->get();
$data = [$first_hour,$last_hour,$other_hours];
return response()->json($data );
}
OUTPUT of above function :
[[{"first":1}],[{"last":0}],[{"other":4}]]
I want to remove array in array, what i do in my function?
答
If your queries result as a single row which i guess yes because you are not using group by then you can use first()
instead of get()
Output will be
[{"first":1},{"last":0},{"other":4}]
答
<?php
$prefs =
[
['fruit' => 'banana'],
['nut' => 'pecan'],
['pasta' => 'fusili']
];
$flatter = array_merge(...$prefs);
var_export($flatter);
Output:
array (
'fruit' => 'banana',
'nut' => 'pecan',
'pasta' => 'fusili',
)