PHP根據二維陣列的某鍵值合併二維陣列
<pre name="code" class="php">
<?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){ //第一次執行或者出現時間相同的元素 if($temp_time == '' || $temp_time == $v['date']){ if(is_null($target_array[$v['date']]['date'])){ $target_array[$v['date']]['date'] = $temp_time; } }else{ //出現不同的日期值需要給目標陣列建新的索引值 $target_array[$v['date']]['date'] = $v['date']; } $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根據二維陣列的某鍵值合併二維陣列
<pre name="code" class="php"> <?php //需求:根據date欄位的值將每天的type的pv、uv的資料放到一個維度裡,目標陣列仍為二維陣列 //原始陣列 $resource_array=array ( '0' =
PHP通過二維陣列鍵值獲取一維鍵名
有如下既定陣列: $inviteType = [ '掃碼' => [ 'type' => 0, 'point' => 5, ],
C/C++二維陣列(陣列指標)——二維陣列的傳值和二維陣列的一維訪問
二維陣列既可以通過二維訪問也可以通過一維訪問。 對於二維陣列的傳值,引進了陣列指標。 #include <stdio.h> void foo(int *p,int n)//一維訪問 {
指標的賦值、一維陣列的賦值、二維陣列與指標
1、指標的賦值 int a; int *p; p = &a; 或者 int a; int *p = &a; 2、一維陣列的賦值 int *p,a[i]; p=a;//陣列的首地址傳給了指標變數,則該指標變數指向了該陣列。 或者
Python 二維建立與插入值的二種方法
1第一種 nums = [] rows = eval(input("請輸入行數:")) columns = eval(input("請輸入列數:")) for row in range(rows): nums.append([]) for column in range(co
(三)JavaScript的陣列、鍵值對和原型
一、Array物件 Array既被當作陣列,又被當作鍵值對和list集合,最外層為“[ ]”(中括號)即為數字,為“{ }”(大括號)即為鍵值對,又稱作json格式。 <script
JavaScript中用陣列實現鍵值對
今天寫瀏覽器端js程式,需要用到鍵值對的功能,vbs中有dictionary物件,js中也應該有對應的dictionary物件,查了一下js手冊,js中果然有dictionary物件,程式寫好了,跨瀏覽器一測試,發現只有IE支援new ActiveXObject("Scripting.Dictiona
資料預處理系列:(十二)用截斷奇異值分解降維
博主簡介:風雪夜歸子(英文名: Allen),機器學習演算法攻城獅,喜愛鑽研Machine Learning的黑科技,對Deep Learning和Artificial Intellige
php 中 使用foreach為陣列增加鍵值對
php 中的 foreach 在php中,使用foreach來遍歷陣列的頻率很高,並且其效能要高於 list() 和 each() 結合來遍歷陣列: 當遍歷二位陣列的第一層陣列,並要給第二位陣列增加一個新的鍵值對時。例如我有這樣的二維陣列結構 $a =
給定兩個有序陣列,找出合併之後的陣列中位數
中位數定義:假如一個數組的長度Len為偶數,那麼中位數為第 Len/2 個數;如果Len為奇數,那麼中位數為第Len/2+1個數。 比如 Arr[ 1, 2, 3, 4, 5]中位數為3;Arr[ 2, 3, 4, 5]中位數為3。 給定兩個遞增排序陣列,請設計一種高效演算
php陣列根據某一個鍵值,把相同鍵值的合併生成一個新的二維陣列
php陣列根據某一個鍵值,把相同鍵值的合併生成一個新的二維陣列 <?php $infos = array( array( 'a' => 36, 'b' => 'xa', 'c' => '2015-08-28 00:00:00', 'd' => '2
二維陣列根據指定的鍵值排序
function array_sort($array,$keys,$type='asc'){ if(!isset($array) || !is_array($array) || empty($array)){ return ''; } if(!isse
merger_by_one 處理二維陣列,根據裡面某欄位合併, 裡面有的保留,有的求和~~
public function tt(){ $param = array( array ( 'hykno' => '2222222-CB', 'tcdk_f
poj 2155 (二維樹狀陣列 區間修改 求某點值)
Matrix Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 33682
php二維陣列按某個鍵值排序(突然用到以往知識,算是臨時補充筆記吧)
print_r($arr);排序後Array ( [0] => Array ( [name] => 6 [age] => 21 ) [1] => Array (
php 陣列分組 二維陣列中,將某個鍵值相同的合併到一個數組中
php 陣列分組 二維陣列中,將某個鍵值相同的合併到一個數組中,下面是示例程式碼。 //原陣列 $arr = array ( 0 => array ( 'initial' => 'A',
php二維陣列刪除某個鍵值相同的陣列
<?php $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ),
php二維陣列按某個鍵值排序
function arrSort($arr,$field,$sort='asc'){$newArr = $sortArr = [];foreach($arr as $key=>$value){$newArr[$key] = $value[$field];}if($sor
PHP二維陣列去重的方法(保留各個鍵值的同時去除重複的項)-- 二維陣列的唯一性
對於如下二維陣列,要求對其進行去重: $arr = array( '0'=>array( 'name'=>'james', 'age'=>30,
php二維陣列去重即去掉重複鍵值的子元素
案例1: Array ( [0] => Array ( [0] => 2 [1] => 1505622764 ) [1] => Array