array_join

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

    array_join

    Hi,
    I'm trying to do this:

    $array1 = array("a" => 1, "b" => 2);
    $array2 = array("a" => 2, "b" => 4);
    $array3 = array_join($arr ay1, $arra2);

    Output should be:
    $array3 = (
    [a] => 3
    [b] => 6
    )

    with this:
    function array_join($arr ay1, $array2) {
    foreach($array2 as $key => $value) {
    if(array_key_ex ists($key, $array1)) {
    $array1[$key] .= $array2[$key];
    }
    else {
    $array[$key] = $array2[$key];
    }
    }
    return $array1;
    }


    But it doesn't quite work. Can somebody help a bit?
    It gives a warning like this:

    Warning: Invalid argument supplied for foreach() in
    C:\Programs\wor k\jobs\index.ph p on line 63

    Shmuel.
  • kingofkolt

    #2
    Re: array_join

    "Shmuel" <sdg@nic.fi> wrote in message
    news:R7pyc.2284 $7F6.568@reader 1.news.jippii.n et...[color=blue]
    > Hi,
    > I'm trying to do this:
    >
    > $array1 = array("a" => 1, "b" => 2);
    > $array2 = array("a" => 2, "b" => 4);
    > $array3 = array_join($arr ay1, $arra2);
    >
    > Output should be:
    > $array3 = (
    > [a] => 3
    > [b] => 6
    > )
    >
    > with this:
    > function array_join($arr ay1, $array2) {
    > foreach($array2 as $key => $value) {
    > if(array_key_ex ists($key, $array1)) {
    > $array1[$key] .= $array2[$key];
    > }
    > else {
    > $array[$key] = $array2[$key];
    > }
    > }
    > return $array1;
    > }
    >
    >
    > But it doesn't quite work. Can somebody help a bit?
    > It gives a warning like this:
    >
    > Warning: Invalid argument supplied for foreach() in
    > C:\Programs\wor k\jobs\index.ph p on line 63
    >
    > Shmuel.[/color]

    you misspelled the variable name $array2 when you called the array_join
    function ("$array2 = array_join($arr ay1,$arra2);") you spelled $array2 like
    $arra2


    Comment

    • Chung Leong

      #3
      Re: array_join


      "kingofkolt " <jessepNOSPAM@c omcast.net> wrote in message
      news:dzpyc.77$H g2.19@attbi_s04 ...[color=blue]
      > "Shmuel" <sdg@nic.fi> wrote in message
      > news:R7pyc.2284 $7F6.568@reader 1.news.jippii.n et...[color=green]
      > > Hi,
      > > I'm trying to do this:
      > >
      > > $array1 = array("a" => 1, "b" => 2);
      > > $array2 = array("a" => 2, "b" => 4);
      > > $array3 = array_join($arr ay1, $arra2);
      > >
      > > Output should be:
      > > $array3 = (
      > > [a] => 3
      > > [b] => 6
      > > )
      > >
      > > with this:
      > > function array_join($arr ay1, $array2) {
      > > foreach($array2 as $key => $value) {
      > > if(array_key_ex ists($key, $array1)) {
      > > $array1[$key] .= $array2[$key];
      > > }
      > > else {
      > > $array[$key] = $array2[$key];
      > > }
      > > }
      > > return $array1;
      > > }
      > >
      > >
      > > But it doesn't quite work. Can somebody help a bit?
      > > It gives a warning like this:
      > >
      > > Warning: Invalid argument supplied for foreach() in
      > > C:\Programs\wor k\jobs\index.ph p on line 63
      > >
      > > Shmuel.[/color]
      >
      > you misspelled the variable name $array2 when you called the array_join
      > function ("$array2 = array_join($arr ay1,$arra2);") you spelled $array2[/color]
      like[color=blue]
      > $arra2[/color]

      Moreover, .= is string concatenation, not addition. The result would be

      $array3 = (
      [a] => 12
      [b] => 24
      )

      += is needed in this case.

      function array_join($arr ay1, $array2) {
      foreach($array2 as $key => $value) {
      @$array1[$key] += $value;
      }
      return $array1;
      }


      Comment

      Working...