0

I've following array titled $aFriends as follows : The actual array is very large but for reference I've printed only first two elements here.

Array
(
    [0] => Array
        (
            [dob_setting] => 4
            [user_id] => 1
            [profile_page_id] => 0
            [user_server_id] => 0
            [user_name] => admin
            [full_name] => admin
            [gender] => 1
            [user_image] => 2015/03/96cc42b833bc0d34b521818272c05011%s.jpg
            [is_invisible] => 0
            [user_group_id] => 1
            [language_id] => 
        )

    [1] => Array
        (
            [dob_setting] => 0
            [user_id] => 30
            [profile_page_id] => 0
            [user_server_id] => 0
            [user_name] => profile-30
            [full_name] => 
            [gender] => 0
            [user_image] => 
            [is_invisible] => 0
            [user_group_id] => 7
            [language_id] => 
        )
)

I want to add a key as follows to every element of above array :

$aFriends[0]['profile_image'] = image_creator($aFriends[$key][$value]['user_image']);
$aFriends[1]['profile_image'] = image_creator($aFriends[$key][$value]['user_image']);
.
.
.
.
.

For it I tried following code :

foreach($aFriends as $key => $value) {
          $aFriends[$key][$value]['profile_image'] = image_creator($aFriends[$key][$value]['user_image']);    

        }

Got the same array as output. Not adding new key ['profile_image'] to each element. Please help me in getting the desired array.

Thanks.

PHPLover
  • 1
  • 51
  • 158
  • 311

3 Answers3

2
foreach($aFriends as $key => $value) {
      $aFriends[$key][$value]['profile_image'] = image_creator($aFriends[$key][$value]['user_image']);    
}

$value is an array, why you put it there?

foreach($aFriends as $key => $value) {
      $aFriends[$key]['profile_image'] = image_creator($aFriends[$key]['user_image']);    
}
Daimos
  • 1,473
  • 10
  • 28
0

This should work:

foreach($aFriends as $friend => $values) {
    $aFriends[$friend]['profile_image'] = '';
}
Thomas Frei
  • 141
  • 7
  • No it doesn't... `$friend` should be passed by ref, but it isn't here. Plus pass by ref in a foreach is not done... – Raphioly-San Jul 08 '15 at 11:01
0

You don't need to write [$value] in the body of loop

Your foreach loop should be like this

foreach($aFriends as $key => $value) {
      $aFriends[$key]['profile_image'] = image_creator($aFriends[$key]['user_image']);    
}