phplemon Posted October 15, 2013 Share Posted October 15, 2013 Array ( [5] => first [3] => first [2] => second [4] => second ) Hi, I need to merge this array so it becomes this: Array ( [8] => first [6] => second ) So it adds 5 + 3 from the ones with value first. I have tried everything but cant find a solution. How can I do it? thx Link to comment https://forums.phpfreaks.com/topic/282988-merging-arrays-like-this-help/ Share on other sites More sharing options...
Barand Posted October 15, 2013 Share Posted October 15, 2013 You can't. Array key values must be unique and you cannot guarantee that when you start adding them. You need to to rethink your array structure Link to comment https://forums.phpfreaks.com/topic/282988-merging-arrays-like-this-help/#findComment-1453991 Share on other sites More sharing options...
Ch0cu3r Posted October 15, 2013 Share Posted October 15, 2013 You could do $array = array(5 => 'first', 3 => 'first', 2 => 'secound', 4 => 'secound'); $array_values = array_unique(array_values($array)); printf('<pre>%s</pre>', print_r($array_values, true)); foreach($array_values as $value) { echo $value .' = ' . array_sum(array_keys($array, $value)) . '<br />'; } Link to comment https://forums.phpfreaks.com/topic/282988-merging-arrays-like-this-help/#findComment-1453993 Share on other sites More sharing options...
phplemon Posted October 15, 2013 Author Share Posted October 15, 2013 You can't. Array key values must be unique and you cannot guarantee that when you start adding them. You need to to rethink your array structure Ok, can I make it so that it adds 5 + 3 + an extra 100 to make sure its unique? So the array becomes like this: Array ( [108] => first [106] => second ) Link to comment https://forums.phpfreaks.com/topic/282988-merging-arrays-like-this-help/#findComment-1453994 Share on other sites More sharing options...
phplemon Posted October 15, 2013 Author Share Posted October 15, 2013 You could do $array = array(5 => 'first', 3 => 'first', 2 => 'secound', 4 => 'secound'); $array_values = array_unique(array_values($array)); printf('<pre>%s</pre>', print_r($array_values, true)); foreach($array_values as $value) { echo $value .' = ' . array_sum(array_keys($array, $value)) . '<br />'; } Thank you, in the end it gives me this: Array ( [0] => first [2] => secound ) first = 8 secound = 6 Im going to merge the array with another array so this doesnt really work for me. Maybe I can use this as an array inside another array and still get the result I want. Thx. Link to comment https://forums.phpfreaks.com/topic/282988-merging-arrays-like-this-help/#findComment-1453995 Share on other sites More sharing options...
Barand Posted October 15, 2013 Share Posted October 15, 2013 if you started with this array you have a problem, even if you add 100 $array = array(1 => 'second', 3 => 'first', 2 => 'first', 4 => 'second'); Link to comment https://forums.phpfreaks.com/topic/282988-merging-arrays-like-this-help/#findComment-1453996 Share on other sites More sharing options...
AbraCadaver Posted October 15, 2013 Share Posted October 15, 2013 Maybe a description of what you want to do or overall end result instead of the end result of the array Link to comment https://forums.phpfreaks.com/topic/282988-merging-arrays-like-this-help/#findComment-1454013 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.