2014-11-17 9 views
0

두 개의 배열이 있습니다. 배열 1은 사용자 이름과 관련 ID를 포함합니다. 배열 2에는 동일한 ID, 타임 스탬프 및 해당 타임 스탬프 및 해당 ID와 관련된 "팔로어"수가 포함됩니다.두 개의 배열을 하나의 다차원 배열로 결합하는 방법

예를 들면, (이 데이터의 작은 일부에 불과하다) :

$ 당신이 볼 수 있듯이 배열

array(4) { 
    [0]=> array(2) { 
    ["id"]=> string(4) "1279" 
    ["name"]=> string(13) "Something_big" 
    } 
} 

$ followers_list 배열

array(12) { 
    [0]=> array(3) { 
    ["account_id"]=> string(4) "1279" 
    ["date_time"]=> string(19) "2014-11-14 16:24:03" 
    ["followers"]=> string(4) "1567" 
    } 
    [2]=> array(3) { 
    ["account_id"]=> string(4) "1279" 
    ["date_time"]=> string(19) "2014-11-14 18:52:35" 
    ["followers"]=> string(4) "1566" 
    } 
    [8]=> array(3) { 
    ["account_id"]=> string(4) "1279" 
    ["date_time"]=> string(19) "2014-11-17 12:11:59" 
    ["followers"]=> string(4) "1557" 
    } 
} 

accounts_list , $ followers_list 배열은 특정 ID에 대한 타임 스탬프/날짜 당 추종자를 저장합니다. ID는 ID 및 이름과 일치합니다.

$ new_array

array(1) { 
     [0]=> 
     array(2) { 
     ["id"]=> string(4) "1279" 
     ["name"]=> string(13) "Something_big" 
     ["dates"]=> 
      array(3) { 
       ["date_time"]=> string(19) "2014-11-17 12:11:59" 
        array(1) { 
         ["followers"]=> string(4) "301" 
        } 
       ["date_time"]=> string(19) "2014-12-17 13:10:32" 
        array(1) { 
         ["followers"]=> string(4) "307" 
        } 
       ["date_time"]=> string(19) "2014-12-17 15:16:45" 
        array(1) { 
         ["followers"]=> string(4) "317" 
        } 
      } 
     } 
} 

희망 당신은 내가, 내가 가진 배열을 갖고 싶어 무슨 뜻인지 볼 수 있습니다

는 내가 뭘하려고 함께 이런 일에 데이터를 결합하다 각 날짜에는 추종자가 포함됩니다. 그리고 그 날짜는 사용자 색인 안에 있어야합니다. 그래서 전체 배열은 사용자 당 날짜와 추종자를 저장합니다.

$followers_list 배열을 반복하고 $accounts_list 배열에 추가하는 방법을 알아 냈습니다. 그러나 두 배열에서 ID 배열을 일치시키는 방법을 찾을 수 없습니다.

어떻게이 어레이를 만들겠습니까?

이 내가 시도 것입니다 :는 $ 카운터 번호가 항상 첫 번째 배열의 계정 ID의 인덱스와 동일하지 않기 때문에

$counter = 0; 
foreach ($followers_data as &$follower_count){ 
    $timestamp = $follower_count['date_time']; 
    $followers = $follower_count['followers']; 
    $time_and_followers = [$timestamp,$followers]; 

    array_push($accounts_data[$counter],$time_and_followers); 
    $counter++; 
} 

물론이 정말 작동하지 않습니다.

+0

당신은'$의 accounts_list를 시도 [0] [ "날짜를"] = $ followers_list를,'? –

+0

id를 키로 사용하여'$ accounts_list'를 색인하십시오. –

+0

@CharlesRojas는 올바른 결과를주지 못합니다. http://pastebin.com/Z826d7h7 – Francesca

답변

2

계정 ID를 새 배열의 색인 ID로 사용하면됩니다.
예 : 우리는 $ new_tmp_array라는 이름으로 임시 변수를 선언 할 것이다; 계정 키를 사용하지 않는 배열, 지금

foreach($followers_list as $followers){ 
    $tmp = $followers; 
    unset($tmp['account_id']) 
    $new_tmp_array[$followers['account_id'] ] ['dates'][] = $tmp; 
} 

과 :

foreach($accounts_list as $account){ 
    $new_tmp_array[$account['id'] ] = $account; 
} 

지금은 $의 followers_list를 추가하는 시간 :
먼저 우리는 다음과 같은 코드로에서 계정 목록을 추가합니다.

$new_array = array_values(new_tmp_array); 
0

내가 당신이 원하는이 정확한 것 모르겠지만 그것을 시도 :

$new_array = $accounts_list; 

foreach($new_array as &$account){ 
    foreach($followers_list as $follower){ 
     if($follower["account_id"] == $account["id"]){ 
      $account["dates"][] = array($follower["date_time"], $follower["followers"]); 
     } 
    } 
} 
관련 문제