1

I have a quite large dynamic array fetched from Facebook containing insights data ( expanded with some other values )

array (size=8)
  0 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6054033718991' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6054033668391' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '102' (length=3)
          'cost_per_inline_link_click' => string '9.224138' (length=8)
          'cpm' => string '23.723653' (length=9)
          'cpp' => string '745.817844' (length=10)
          'ctr' => string '0.301534' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '33827' (length=5)
          'inline_link_clicks' => string '87' (length=2)
          'reach' => string '1076' (length=4)
          'spend' => string '802.5' (length=5)
          'unique_clicks' => string '71' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  1 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6054033669391' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6054033668391' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '940' (length=3)
          'cost_per_inline_link_click' => string '4.21121' (length=7)
          'cpm' => string '18.654177' (length=9)
          'cpp' => string '304.317408' (length=10)
          'ctr' => string '0.530429' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '177215' (length=6)
          'inline_link_clicks' => string '785' (length=3)
          'reach' => string '10863' (length=5)
          'spend' => string '3305.8' (length=6)
          'unique_clicks' => string '585' (length=3)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  2 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6053717634591' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '106' (length=3)
          'cost_per_inline_link_click' => string '6.627547' (length=8)
          'cpm' => string '31.457997' (length=9)
          'cpp' => string '61.646192' (length=9)
          'ctr' => string '0.94931' (length=7)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '11166' (length=5)
          'inline_link_clicks' => string '53' (length=2)
          'reach' => string '5698' (length=4)
          'spend' => string '351.26' (length=6)
          'unique_clicks' => string '90' (length=2)
      1 => 
        array (size=7)
          'status' => string 'campaign_paused
' (length=17)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  3 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6053404622991' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '19' (length=2)
          'cost_per_inline_link_click' => string '9.9025' (length=6)
          'cpm' => string '31.943548' (length=9)
          'cpp' => string '73.899254' (length=9)
          'ctr' => string '0.766129' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '2480' (length=4)
          'inline_link_clicks' => string '8' (length=1)
          'reach' => string '1072' (length=4)
          'spend' => string '79.22' (length=5)
          'unique_clicks' => string '17' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  4 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6053404572991' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '49' (length=2)
          'cost_per_inline_link_click' => string '10.9524' (length=7)
          'cpm' => string '57.067528' (length=9)
          'cpp' => string '88.899351' (length=9)
          'ctr' => string '1.021259' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '4798' (length=4)
          'inline_link_clicks' => string '25' (length=2)
          'reach' => string '3080' (length=4)
          'spend' => string '273.81' (length=6)
          'unique_clicks' => string '34' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  5 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6039438663591' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '1440' (length=4)
          'cost_per_inline_link_click' => string '17.057895' (length=9)
          'cpm' => string '60.323048' (length=9)
          'cpp' => string '345.106481' (length=10)
          'ctr' => string '1.165303' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '123573' (length=6)
          'inline_link_clicks' => string '437' (length=3)
          'reach' => string '21600' (length=5)
          'spend' => string '7454.3' (length=6)
          'unique_clicks' => string '1010' (length=4)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  6 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6039438653791' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '332' (length=3)
          'cost_per_inline_link_click' => string '14.831231' (length=9)
          'cpm' => string '60.289556' (length=9)
          'cpp' => string '206.563103' (length=10)
          'ctr' => string '1.038149' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '31980' (length=5)
          'inline_link_clicks' => string '130' (length=3)
          'reach' => string '9334' (length=4)
          'spend' => string '1928.06' (length=7)
          'unique_clicks' => string '245' (length=3)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  7 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6038268312591' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '112' (length=3)
          'cost_per_inline_link_click' => string '5.063291' (length=8)
          'cpm' => string '41.968314' (length=9)
          'cpp' => string '81.984013' (length=9)
          'ctr' => string '1.175113' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '9531' (length=4)
          'inline_link_clicks' => string '79' (length=2)
          'reach' => string '4879' (length=4)
          'spend' => string '400' (length=3)
          'unique_clicks' => string '96' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
C:\Development\Projects\PHP\SparNord.LeadsData\SparNord.LeadsData\app\Controllers\InsightsDataController.php:78:
array (size=8)
  0 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6054033718991' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6054033668391' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '102' (length=3)
          'cost_per_inline_link_click' => string '9.224138' (length=8)
          'cpm' => string '23.723653' (length=9)
          'cpp' => string '745.817844' (length=10)
          'ctr' => string '0.301534' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '33827' (length=5)
          'inline_link_clicks' => string '87' (length=2)
          'reach' => string '1076' (length=4)
          'spend' => string '802.5' (length=5)
          'unique_clicks' => string '71' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  1 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6054033669391' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6054033668391' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '940' (length=3)
          'cost_per_inline_link_click' => string '4.21121' (length=7)
          'cpm' => string '18.654177' (length=9)
          'cpp' => string '304.317408' (length=10)
          'ctr' => string '0.530429' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '177215' (length=6)
          'inline_link_clicks' => string '785' (length=3)
          'reach' => string '10863' (length=5)
          'spend' => string '3305.8' (length=6)
          'unique_clicks' => string '585' (length=3)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  2 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6053717634591' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '106' (length=3)
          'cost_per_inline_link_click' => string '6.627547' (length=8)
          'cpm' => string '31.457997' (length=9)
          'cpp' => string '61.646192' (length=9)
          'ctr' => string '0.94931' (length=7)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '11166' (length=5)
          'inline_link_clicks' => string '53' (length=2)
          'reach' => string '5698' (length=4)
          'spend' => string '351.26' (length=6)
          'unique_clicks' => string '90' (length=2)
      1 => 
        array (size=7)
          'status' => string 'campaign_paused
' (length=17)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  3 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6053404622991' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '19' (length=2)
          'cost_per_inline_link_click' => string '9.9025' (length=6)
          'cpm' => string '31.943548' (length=9)
          'cpp' => string '73.899254' (length=9)
          'ctr' => string '0.766129' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '2480' (length=4)
          'inline_link_clicks' => string '8' (length=1)
          'reach' => string '1072' (length=4)
          'spend' => string '79.22' (length=5)
          'unique_clicks' => string '17' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  4 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6053404572991' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '49' (length=2)
          'cost_per_inline_link_click' => string '10.9524' (length=7)
          'cpm' => string '57.067528' (length=9)
          'cpp' => string '88.899351' (length=9)
          'ctr' => string '1.021259' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '4798' (length=4)
          'inline_link_clicks' => string '25' (length=2)
          'reach' => string '3080' (length=4)
          'spend' => string '273.81' (length=6)
          'unique_clicks' => string '34' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  5 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6039438663591' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '1440' (length=4)
          'cost_per_inline_link_click' => string '17.057895' (length=9)
          'cpm' => string '60.323048' (length=9)
          'cpp' => string '345.106481' (length=10)
          'ctr' => string '1.165303' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '123573' (length=6)
          'inline_link_clicks' => string '437' (length=3)
          'reach' => string '21600' (length=5)
          'spend' => string '7454.3' (length=6)
          'unique_clicks' => string '1010' (length=4)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  6 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6039438653791' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '332' (length=3)
          'cost_per_inline_link_click' => string '14.831231' (length=9)
          'cpm' => string '60.289556' (length=9)
          'cpp' => string '206.563103' (length=10)
          'ctr' => string '1.038149' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '31980' (length=5)
          'inline_link_clicks' => string '130' (length=3)
          'reach' => string '9334' (length=4)
          'spend' => string '1928.06' (length=7)
          'unique_clicks' => string '245' (length=3)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  7 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6038268312591' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6037440286791' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '112' (length=3)
          'cost_per_inline_link_click' => string '5.063291' (length=8)
          'cpm' => string '41.968314' (length=9)
          'cpp' => string '81.984013' (length=9)
          'ctr' => string '1.175113' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '9531' (length=4)
          'inline_link_clicks' => string '79' (length=2)
          'reach' => string '4879' (length=4)
          'spend' => string '400' (length=3)
          'unique_clicks' => string '96' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)

How can I merge these arrays and sum values on specific keys (clicks, cpm, ctr, impressions, reach, spend) where the key 'shortname' is identical so that I will get only one array with each shortname, where the values on the spefific keys are added up so my result will be like

array (size=8)
  0 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6054033718991' (length=13)
          'adset_name' => string 'Greve - MSN' (length=11)
          'campaign_id' => string '6054033668391' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '102' (length=3)
          'cost_per_inline_link_click' => string '9.224138' (length=8)
          'cpm' => string '23.723653' (length=9)
          'cpp' => string '745.817844' (length=10)
          'ctr' => string '0.301534' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '33827' (length=5)
          'inline_link_clicks' => string '87' (length=2)
          'reach' => string '1076' (length=4)
          'spend' => string '802.5' (length=5)
          'unique_clicks' => string '71' (length=2)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'greve' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)
  1 => 
    array (size=2)
      0 => 
        array (size=16)
          'adset_id' => string '6054033669391' (length=13)
          'adset_name' => string 'Køge - MSN' (length=11)
          'campaign_id' => string '6054033668391' (length=13)
          'campaign_name' => string 'Køge - MSN' (length=11)
          'clicks' => string '940' (length=3)
          'cost_per_inline_link_click' => string '4.21121' (length=7)
          'cpm' => string '18.654177' (length=9)
          'cpp' => string '304.317408' (length=10)
          'ctr' => string '0.530429' (length=8)
          'date_start' => string '2016-01-01' (length=10)
          'date_stop' => string '2016-10-25' (length=10)
          'impressions' => string '177215' (length=6)
          'inline_link_clicks' => string '785' (length=3)
          'reach' => string '10863' (length=5)
          'spend' => string '3305.8' (length=6)
          'unique_clicks' => string '585' (length=3)
      1 => 
        array (size=7)
          'status' => string 'paused
' (length=8)
          'bankarea' => string 'koege' (length=5)
          'shortname' => string 'koege' (length=5)
          'campaign' => string 'msn' (length=3)
          'platform' => string 'facebook' (length=8)
          'datefrom' => string '2016-01-01' (length=10)
          'dateto' => string '2016-10-25' (length=10)

Where the values on keys clicks, cpm, ctr, impressions, reach, spend are added up ( there are not in my example above )

1 Answer 1

1

This should do what you want:

$props_to_sum = ["cpm", "clicks", "reach"];

$result = [];
foreach ($data as $entry) {
    $key = $entry[1]['shortname'];
    if (!array_key_exists($key, $result)) {
        $result[$key] = $entry;
        continue;
    }
    foreach ($props_to_sum as $prop) {
        $result[$key][0][$prop] += $entry[0][$prop];
    }
}
$result = array_values($result);
Sign up to request clarification or add additional context in comments.

4 Comments

Actually I don't want to reduce the arrays! I want the arrays to be as is, just merged where 'shortname' is identical, and specific numeric values added up.
I think i understand, i'll try to come up with something.
If there f.x. are 3 different arrays with the shortname "Greve" I want those array merged into a single array with the shortname "Greve" with all the numeric values are added up, if array1 have a REACH = 5000, array2 REACH = 4000, array3 REACH = 10000, the new array will have a REACH of 19000, but I will still want all the same keys, because I will use them to be displayed on a dashboard. But I am of course open for a better solution :-)
This looks great and it does merge the arrays so that I am ending up with just two arrays from my example in the original question. But it looks like it doesn't add up the values ... I have testet on the shortname "greve" where total clicks should be 565, but it is taking the value from the first array with shortname greve with value 102.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.