<?php
// 素材となる配列
$base_arr = array(
array(
'time' => ['1558432388750'],
'action' => 'lose',
'target_id' => '76',
'actor_id' => ['87'],
'type' => 'a',
),
array(
'time' => ['1558432437780','1558432449937'],
'action' => 'get',
'target_id' => '10',
'actor_id' => ['9','51'],
'type' => 'b',
)
);
$time_ux = ceil(microtime(true)*1000);
$new_arr = array(
array(
'time' => [$time_ux],
'action' => 'get',
'target_id' => '10',
'actor_id' => ['3'],
'type' => 'a',
)
);
// $base_arr がない場合
if( empty($base_arr) || is_null($base_arr) ){
$update_arr = $new_arr;
}
// すでに $base_arr がある場合
else{
foreach ( $base_arr as $base_keys ){
if( $base_keys['action'] == $new_arr[0]['action'] && $base_keys['target_id'] == $new_arr[0]['target_id'] ){
for( $i = 0; $i < count($base_arr); $i++ ) {
$base_arr[$i]['time'] = array_slice( array_merge($new_arr[0]['time'], $base_arr[$i]['time']), 0, 20 );
$base_arr[$i]['actor_id'] = array_slice( array_merge($new_arr[0]['actor_id'], $base_arr[$i]['actor_id']), 0, 20 );
$base_arr[$i]['type'] = 'a';
}
}
}
$update_arr = $base_arr;
}
// 確認
var_export($update_arr);
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.26, 7.3.0 - 7.3.13, 7.4.0 - 7.4.1
- array (
0 =>
array (
'time' =>
array (
0 => 1558435357001.0,
1 => '1558432388750',
),
'action' => 'lose',
'target_id' => '76',
'actor_id' =>
array (
0 => '3',
1 => '87',
),
'type' => 'a',
),
1 =>
array (
'time' =>
array (
0 => 1558435357001.0,
1 => '1558432437780',
2 => '1558432449937',
),
'action' => 'get',
'target_id' => '10',
'actor_id' =>
array (
0 => '3',
1 => '9',
2 => '51',
),
'type' => 'a',
),
)
preferences:
94.96 ms | 403 KiB | 82 Q