array question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Stormkid

    array question

    Hi Group I'm trying to figure out a way that I can take two (two
    dimensional) arrays and avShed and shed, and subtract the matching elements
    in shed from avShed I've pasted the arrays blow from a print_r cmd any
    suggestions would be great. Thanks much Todd
    //avShed array

    Array ( [0] => Array ( [dayOfWeek] => 1 [timeInt] => 08:00 ) [1] => Array
    ( [dayOfWeek] => 1 [timeInt] => 08:05 ) [2] => Array ( [dayOfWeek] => 1
    [timeInt] => 08:10 ) [3] => Array ( [dayOfWeek] => 1 [timeInt] => 08:15 )
    [4] => Array ( [dayOfWeek] => 1 [timeInt] => 08:20 ) [5] => Array (
    [dayOfWeek] => 1 [timeInt] => 08:25 ) [6] => Array ( [dayOfWeek] => 1
    [timeInt] => 08:30 ) [7] => Array ( [dayOfWeek] => 1 [timeInt] => 08:35 )
    [8] => Array ( [dayOfWeek] => 1 [timeInt] => 08:40 ) [9] => Array (
    [dayOfWeek] => 1 [timeInt] => 08:45 ) [10] => Array ( [dayOfWeek] => 1
    [timeInt] => 08:50 ) [11] => Array ( [dayOfWeek] => 1 [timeInt] => 08:55 )
    [12] => Array ( [dayOfWeek] => 1 [timeInt] => 09:00 ) [13] => Array (
    [dayOfWeek] => 1 [timeInt] => 09:05 ) [14] => Array ( [dayOfWeek] => 1
    [timeInt] => 09:10 ) [15] => Array ( [dayOfWeek] => 1 [timeInt] => 09:15 )
    [16] => Array ( [dayOfWeek] => 1 [timeInt] => 09:20 ) [17] => Array (
    [dayOfWeek] => 1 [timeInt] => 09:25 ) [18] => Array ( [dayOfWeek] => 1
    [timeInt] => 09:30 ) [19] => Array ( [dayOfWeek] => 1 [timeInt] => 09:35 )
    [20] => Array ( [dayOfWeek] => 1 [timeInt] => 09:40 ) [21] => Array (
    [dayOfWeek] => 1 [timeInt] => 09:45 ) [22] => Array ( [dayOfWeek] => 1
    [timeInt] => 09:50 ) [23] => Array ( [dayOfWeek] => 1 [timeInt] => 09:55 )
    [24] => Array ( [dayOfWeek] => 1 [timeInt] => 10:00 ) [25] => Array (
    [dayOfWeek] => 1 [timeInt] => 10:05 ) [26] => Array ( [dayOfWeek] => 1
    [timeInt] => 10:10 ) [27] => Array ( [dayOfWeek] => 1 [timeInt] => 10:15 )
    [28] => Array ( [dayOfWeek] => 1 [timeInt] => 10:20 ) [29] => Array (
    [dayOfWeek] => 1 [timeInt] => 10:25 ) [30] => Array ( [dayOfWeek] => 1
    [timeInt] => 10:30 ) [31] => Array ( [dayOfWeek] => 1 [timeInt] => 10:35 )
    [32] => Array ( [dayOfWeek] => 1 [timeInt] => 10:40 ) [33] => Array (
    [dayOfWeek] => 1 [timeInt] => 10:45 ) [34] => Array ( [dayOfWeek] => 1
    [timeInt] => 10:50 ) [35] => Array ( [dayOfWeek] => 1 [timeInt] => 10:55 )
    [36] => Array ( [dayOfWeek] => 1 [timeInt] => 11:00 ) [37] => Array (
    [dayOfWeek] => 1 [timeInt] => 11:05 ) [38] => Array ( [dayOfWeek] => 1
    [timeInt] => 11:10 ) [39] => Array ( [dayOfWeek] => 1 [timeInt] => 11:15 )
    [40] => Array ( [dayOfWeek] => 1 [timeInt] => 11:20 ) [41] => Array (
    [dayOfWeek] => 1 [timeInt] => 11:25 ) [42] => Array ( [dayOfWeek] => 1
    [timeInt] => 11:30 ) [43] => Array ( [dayOfWeek] => 1 [timeInt] => 11:35 )
    [44] => Array ( [dayOfWeek] => 1 [timeInt] => 11:40 ) [45] => Array (
    [dayOfWeek] => 1 [timeInt] => 11:45 ) [46] => Array ( [dayOfWeek] => 1
    [timeInt] => 11:50 ) [47] => Array ( [dayOfWeek] => 1 [timeInt] => 11:55 )
    [48] => Array ( [dayOfWeek] => 2 [timeInt] => 13:00 ) [49] => Array (
    [dayOfWeek] => 2 [timeInt] => 13:05 ) [50] => Array ( [dayOfWeek] => 2
    [timeInt] => 13:10 ) [51] => Array ( [dayOfWeek] => 2 [timeInt] => 13:15 )
    [52] => Array ( [dayOfWeek] => 2 [timeInt] => 13:20 ) [53] => Array (
    [dayOfWeek] => 2 [timeInt] => 13:25 ) [54] => Array ( [dayOfWeek] => 2
    [timeInt] => 13:30 ) [55] => Array ( [dayOfWeek] => 2 [timeInt] => 13:35 )
    [56] => Array ( [dayOfWeek] => 2 [timeInt] => 13:40 ) [57] => Array (
    [dayOfWeek] => 2 [timeInt] => 13:45 ) [58] => Array ( [dayOfWeek] => 2
    [timeInt] => 13:50 ) [59] => Array ( [dayOfWeek] => 2 [timeInt] => 13:55 )
    [60] => Array ( [dayOfWeek] => 2 [timeInt] => 14:00 ) [61] => Array (
    [dayOfWeek] => 2 [timeInt] => 14:05 ) [62] => Array ( [dayOfWeek] => 2
    [timeInt] => 14:10 ) [63] => Array ( [dayOfWeek] => 2 [timeInt] => 14:15 )
    [64] => Array ( [dayOfWeek] => 2 [timeInt] => 14:20 ) [65] => Array (
    [dayOfWeek] => 2 [timeInt] => 14:25 ) [66] => Array ( [dayOfWeek] => 2
    [timeInt] => 14:30 ) [67] => Array ( [dayOfWeek] => 2 [timeInt] => 14:35 )
    [68] => Array ( [dayOfWeek] => 2 [timeInt] => 14:40 ) [69] => Array (
    [dayOfWeek] => 2 [timeInt] => 14:45 ) [70] => Array ( [dayOfWeek] => 2
    [timeInt] => 14:50 ) [71] => Array ( [dayOfWeek] => 2 [timeInt] => 14:55 )
    [72] => Array ( [dayOfWeek] => 2 [timeInt] => 15:00 ) [73] => Array (
    [dayOfWeek] => 2 [timeInt] => 15:05 ) [74] => Array ( [dayOfWeek] => 2
    [timeInt] => 15:10 ) [75] => Array ( [dayOfWeek] => 2 [timeInt] => 15:15 )
    [76] => Array ( [dayOfWeek] => 2 [timeInt] => 15:20 ) [77] => Array (
    [dayOfWeek] => 2 [timeInt] => 15:25 ) [78] => Array ( [dayOfWeek] => 2
    [timeInt] => 15:30 ) [79] => Array ( [dayOfWeek] => 2 [timeInt] => 15:35 )
    [80] => Array ( [dayOfWeek] => 2 [timeInt] => 15:40 ) [81] => Array (
    [dayOfWeek] => 2 [timeInt] => 15:45 ) [82] => Array ( [dayOfWeek] => 2
    [timeInt] => 15:50 ) [83] => Array ( [dayOfWeek] => 2 [timeInt] => 15:55 )
    [84] => Array ( [dayOfWeek] => 2 [timeInt] => 16:00 ) [85] => Array (
    [dayOfWeek] => 2 [timeInt] => 16:05 ) [86] => Array ( [dayOfWeek] => 2
    [timeInt] => 16:10 ) [87] => Array ( [dayOfWeek] => 2 [timeInt] => 16:15 )
    [88] => Array ( [dayOfWeek] => 2 [timeInt] => 16:20 ) [89] => Array (
    [dayOfWeek] => 2 [timeInt] => 16:25 ) [90] => Array ( [dayOfWeek] => 2
    [timeInt] => 16:30 ) [91] => Array ( [dayOfWeek] => 2 [timeInt] => 16:35 )
    [92] => Array ( [dayOfWeek] => 2 [timeInt] => 16:40 ) [93] => Array (
    [dayOfWeek] => 2 [timeInt] => 16:45 ) [94] => Array ( [dayOfWeek] => 2
    [timeInt] => 16:50 ) [95] => Array ( [dayOfWeek] => 2 [timeInt] => 16:55 ) )


    // shed array
    Array ( [0] => Array ( [dayOfWeek] => 1 [timeInt] => 08:00 ) [1] => Array
    ( [dayOfWeek] => 1 [timeInt] => 08:05 ) [2] => Array ( [dayOfWeek] => 1
    [timeInt] => 08:10 ) [3] => Array ( [dayOfWeek] => 1 [timeInt] => 08:15 )
    [4] => Array ( [dayOfWeek] => 1 [timeInt] => 08:40 ) [5] => Array (
    [dayOfWeek] => 1 [timeInt] => 08:45 ) [6] => Array ( [dayOfWeek] => 1
    [timeInt] => 08:50 ) [7] => Array ( [dayOfWeek] => 1 [timeInt] => 08:55 )
    [8] => Array ( [dayOfWeek] => 2 [timeInt] => 14:00 ) [9] => Array (
    [dayOfWeek] => 2 [timeInt] => 14:05 ) [10] => Array ( [dayOfWeek] => 2
    [timeInt] => 14:10 ) [11] => Array ( [dayOfWeek] => 2 [timeInt] => 14:15 )
    [12] => Array ( [dayOfWeek] => 2 [timeInt] => 14:20 ) [13] => Array (
    [dayOfWeek] => 2 [timeInt] => 14:25 ) [14] => Array ( [dayOfWeek] => 2
    [timeInt] => 14:30 ) [15] => Array ( [dayOfWeek] => 2 [timeInt] => 14:35 )
    [16] => Array ( [dayOfWeek] => 2 [timeInt] => 15:00 ) [17] => Array (
    [dayOfWeek] => 2 [timeInt] => 15:05 ) [18] => Array ( [dayOfWeek] => 2
    [timeInt] => 15:10 ) [19] => Array ( [dayOfWeek] => 2 [timeInt] => 15:15 ) )


  • Shawn Wilson

    #2
    Re: array question



    Stormkid wrote:[color=blue]
    >
    > Hi Group I'm trying to figure out a way that I can take two (two
    > dimensional) arrays and avShed and shed, and subtract the matching elements
    > in shed from avShed I've pasted the arrays blow from a print_r cmd any
    > suggestions would be great. Thanks much Todd
    > //avShed array
    >
    > Array ( [0] => Array ( [dayOfWeek] => 1 [timeInt] => 08:00 ) [1] => Array
    > ( [dayOfWeek] => 1 [timeInt] => 08:05 ) [2] => Array ( [dayOfWeek] => 1[/color]
    <snip>[color=blue]
    > [timeInt] => 16:50 ) [95] => Array ( [dayOfWeek] => 2 [timeInt] => 16:55 ) )
    >
    > // shed array
    > Array ( [0] => Array ( [dayOfWeek] => 1 [timeInt] => 08:00 ) [1] => Array[/color]
    <snip>[color=blue]
    > [timeInt] => 15:10 ) [19] => Array ( [dayOfWeek] => 2 [timeInt] => 15:15 ) )[/color]

    UNTESTED:

    foreach($shed as $arr) {
    for($i=0;$i<cou nt($avShed);++$ i) {
    if ($arr[1] == $avShed[$i][1] && $arr[0] == $avShed[$i][0]) {
    array_splice($a vShed, $i, 1);
    $i--; //you may or may not need this
    // continue 2; //<-- Uncomment if you only want 1st instance removed
    }
    }
    }

    I think this'll work. The $i-- is there in case you have 2 exact duplicates
    back-to-back.
    Looking back, I'm guessing there's a less cpu-intensive way to do this.

    Regards,
    Shawn
    --
    Shawn Wilson
    shawn@glassgian t.com

    Comment

    • Pedro Graca

      #3
      Re: array question

      Stormkid wrote:[color=blue]
      > Hi Group I'm trying to figure out a way that I can take two (two
      > dimensional) arrays and avShed and shed, and subtract the matching elements
      > in shed from avShed I've pasted the arrays blow from a print_r cmd any
      > suggestions would be great. Thanks much Todd[/color]
      (snip)

      I'd change those arrays of arrays into arrays of strings and then apply
      array_intersect () to them

      something like this (UNTESTED):

      <?php
      $new1 = array();
      foreach ($avShed as $arr) $new1[] = $arr[0] . '@@' . $arr[1];
      // or is this $arr['dayOfWeek'] and $arr['timeInt'] ???

      $new2 = array();
      foreach ($shed as $arr) $new2[] = $arr[0] . '@@' . $arr[1];


      $diff = array_intersect ($new1, $new2);
      ?>
      --
      --= my mail box only accepts =--
      --= Content-Type: text/plain =--
      --= Size below 10001 bytes =--

      Comment

      Working...