0

I have 2 arrays that have the same keys but different values. I am trying to merge just the values into a new array. I have tried array_merge, array_merge_recursive, array1+array2, array_intersect, array_intersect_key(array_merge())

MAIN ARRAY

array (size=2)
'attr' => 
array (size=6)
  'attr__6__23__grad_gown_size' => 
    array (size=3)
      'val' => string '5ft.9in. - 5ft.11in.' (length=20)
      'qty' => string '1' (length=1)
      'ordqty' => 
        array (size=1)
          ...
  'attr__1__23__grad_dvd' => 
    array (size=3)
      'val' => null
      'qty' => string '0' (length=1)
      'ordqty' => 
        array (size=1)
          ...
  'attr__2__23__grad_combo' => 
    array (size=3)
      'val' => string 'Yes' (length=3)
      'qty' => string '1' (length=1)
      'ordqty' => 
        array (size=1)
          ...
  'attr__3__23__grad_tas_dip_only' => 
    array (size=3)
      'val' => null
      'qty' => string '0' (length=1)
      'ordqty' => 
        array (size=1)
          ...
  'attr__4__23__grad_tassel' => 
    array (size=3)
      'val' => null
      'qty' => string '0' (length=1)
      'ordqty' => 
        array (size=1)
          ...
  'attr__5__23__grad_honor_seal' => 
    array (size=3)
      'val' => null
      'qty' => string '0' (length=1)
      'ordqty' => 
        array (size=1)
          ...
'attr_add' => 
array (size=6)
  'attr__6__23__grad_gown_size' => 
    array (size=3)
      'val' => string '' (length=0)
      'qty' => string '0' (length=1)
      'ordqty' => 
        array (size=0)
          ...
  'attr__1__23__grad_dvd' => 
    array (size=3)
      'val' => string 'Yes' (length=3)
      'qty' => string '1' (length=1)
      'ordqty' => 
        array (size=0)
          ...
  'attr__2__23__grad_combo' => 
    array (size=3)
      'val' => null
      'qty' => string '0' (length=1)
      'ordqty' => 
        array (size=0)
          ...
  'attr__3__23__grad_tas_dip_only' => 
    array (size=3)
      'val' => null
      'qty' => string '0' (length=1)
      'ordqty' => 
        array (size=0)
          ...
  'attr__4__23__grad_tassel' => 
    array (size=3)
      'val' => string 'Yes' (length=3)
      'qty' => string '1' (length=1)
      'ordqty' => 
        array (size=0)
          ...
  'attr__5__23__grad_honor_seal' => 
    array (size=3)
      'val' => string 'Yes' (length=3)
      'qty' => string '1' (length=1)
      'ordqty' => 
        array (size=0)
          ...

Array 1 attr

array (size=3)
'val' => string '5ft.9in. - 5ft.11in.' (length=20)
'qty' => string '1' (length=1)
'ordqty' => 
array (size=1)
  27 => string '1' (length=1)

array (size=3)
'val' => null
'qty' => string '0' (length=1)
'ordqty' => 
array (size=1)
  27 => string '0' (length=1)

Array 2 attr_add

array (size=3)
'val' => string '' (length=0)
'qty' => string '0' (length=1)
'ordqty' => 
array (size=1)
  30 => string '0' (length=1)

array (size=3)
'val' => string 'Yes' (length=3)
'qty' => string '1' (length=1)
'ordqty' => 
array (size=1)
  30 => string '1' (length=1)

Result

 array (size=1)
'attr' => 
  array (size=6)
  'attr__6__23__grad_gown_size' => 
    array (size=3)
      'val' => string '5ft.9in. - 5ft.11in.' (length=20)
      'qty' => string '1' (length=1)
      'ordqty' => 
        array (size=2)
          27 => string '1' (length=1)
          30 => string '0' (length=1)
  'attr__1__23__grad_dvd' => 
    array (size=3)
      'val' => Yes
      'qty' => string '1' (length=1)
      'ordqty' => 
        array (size=1)
          27 => string '0' (length=1)
          30 => string '1' (length=1)

What I'm trying

foreach($extra_fields_array['attr'] as $key=>$value)
{
    $ovalue = $extra_fields_array['attr'][$key]; // Array 1
    $nvalue = $attr_array['attr_add'][$key]; // Array 2

    $new_array['attr'][$key] = array_merge($nvalue,$ovalue); // NOT WORKING
 /*
  * What do I do here
  */

}
echo '<pre>';   var_dump($new_array);echo '</pre>';

I hope this makes sense. I've been stuck on it all day. Thanks for any help in advance.

Russ
  • 9
  • 1
  • 7
  • does this help you: http://stackoverflow.com/a/27356329/3536236 – Martin Mar 02 '16 at 22:18
  • Where does `attr__6__23__grad_gown_size` come from? It's not in either of the input arrays. – Barmar Mar 02 '16 at 22:22
  • where did *attr__6__23__grad_gown_size* and *attr__1__23__grad_dvd* come from? – trincot Mar 02 '16 at 22:23
  • Hey Martin, I think the function in the same thread just one up http://stackoverflow.com/a/30528760/1410674 is working – Russ Mar 02 '16 at 22:30
  • Barmar, trincot, those are the keys from the top level array. I'll update it so you can see them – Russ Mar 02 '16 at 22:31
  • Martin function found here is working http://stackoverflow.com/a/30528760/1410674 thank you. I don't know how to give you credit for leading me in the right direction. – Russ Mar 02 '16 at 22:42

0 Answers0