根據二維陣列的某鍵值合併二維陣列

2021-07-15 08:32:57 字數 2253 閱讀 7983

<?php 

//需求:根據date欄位的值將每天的type的pv、uv的資料放到乙個維度裡,目標陣列仍為二維陣列

//原始陣列

$resource_array=array

( '0' => array

('type' => 'hot_list',

'date' => '2016-07-18',

'pv' => 2,

'uv' => 2,

),'1' => array

('type' => 'trailer_list',

'date' => '2016-07-18',

'pv' => 3,

'uv' => 2,

),'2' => array

( 'type' => 'portal',

'date' => '2016-07-17',

'pv' => 3,

'uv' => 2,

),'3' => array

( 'type' => 'trailer_list',

'date' => '2016-07-17',

'pv' => 3,

'uv' => 2,

),'4' => array

( 'type' => 'main',

'date' => '2016-07-16',

'pv' => 3,

'uv' => 2,

),'5' => array

( 'type' => 'play',

'date' => '2016-07-16',

'pv' => 3,

'uv' => 2,

),'6' => array

( 'type' => 'portal',

'date' => '2016-07-15',

'pv' => 3,

'uv' => 2,

),'7' => array

( 'type' => 'trailer_list',

'date' => '2016-07-15',

'pv' => 3,

'uv' => 2,

));//宣告變數,存放原始陣列的時間值用於比較

$temp_time = '';

$target_array = array();

foreach($resource_array as $v)

}else

$temp_time = $v['date'];

$target_array[$v['date']][$v['type'].'_pv'] = $v['pv'];

$target_array[$v['date']][$v['type'].'_uv'] = $v['uv'];

}var_dump($target_array);

//需要的結果

$target_array = array(

0=>array(

'date'=>'2016-07-18',

'trailer_list_pv'=>3,

'trailer_list_uv'=>2,

'portal_pv'=>3,

'portal_uv'=>2,

), 1=>array(

'date'=>'2016-07-17',

'trailer_list_pv'=>3,

'trailer_list_uv'=>2,

'portal_pv'=>3,

'portal_uv'=>2,

), 2=>array(

'date'=>'2016-07-16',

'main_pv'=>3,

'main_uv'=>2,

'play_pv'=>3,

'play_uv'=>2,

), 3=>array(

'date'=>'2016-07-15',

'trailer_list_pv'=>3,

'trailer_list_uv'=>2,

'portal_pv'=>3,

'portal_uv'=>2, ))

?>

工作中碰到的問題,方便以後查閱,大神勿噴

PHP 二維陣列刪除空陣列 二維陣列根據指定值排序

去除二維陣列的重複項 去除二維陣列的重複項 param arr 陣列 param key 按照哪個鍵值 return array public function array unset tt arr,key else return res 二維陣列按某個鍵值進行排序 二維陣列按某個鍵值進行排序 pa...

二維陣列與二維指標

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...

二維指標和二維陣列

二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...