willmcneilly
willmcneilly

Reputation: 658

Pushing rows into a 2d array: Can a loop be used inside of an array declaration?

I've been staring at this piece of code for nearly an hour and a half. In my inexperience I've no idea where I'm going wrong.

$gameInfo = array(
    for ($i = 0; $i < 10; $i++) {
        $friendsInfo[$i] = $facebook->api('/' . $randomfriends[$i]);
        array(
            $randomfriends[$i],
            $friendsInfo[$i][first_name],
            $friendsInfo[$i][last_name],
            $friendsInfo[$i][hometown][name],
            $friendsInfo[$i][location][name],
            $friendsInfo[$i][about]
        );
    }
);

This is my attempt. As you can see the values are being pulled in from facebook. This is not the problem as each value appears if I echo. I want to take the values and put them into a multidimensional array that follows this structure.

$gameInfo =  array(
    array('first_name','last_name','hometown','location','about'),
    array('first_name','last_name','hometown','location','about'),
    array('first_name','last_name','hometown','location','about'),
    array('first_name','last_name','hometown','location','about'),
    array('first_name','last_name','hometown','location','about')
);

Upvotes: 0

Views: 369

Answers (3)

Felix Kling
Felix Kling

Reputation: 816970

Not quite sure what $facebook->api() gives you, but you probably want:

$gameInfo = array();

for($i=0; $i < 10; $i++){
    $gameInfo[] = $facebook->api('/' . $randomfriends[$i]);
}

or

$gameInfo = array();

for($i=0; $i < 10; $i++){
    $friend = $facebook->api('/' . $randomfriends[$i]);
    $gameInfo[] = array(
         $friend['first_name'],
         $friend['last_name'],
         $friend['hometown']['name'],
         $friend['location']['name'],
         $friend['about']
    );
}

Update: If api() returns a JSON string, then you have to use json_decode():

$friend = json_decode($facebook->api('/' . $randomfriends[$i]), true);

No offense, but your whole code is wrong syntax. You might want to read about arrays in PHP.

Upvotes: 1

PeeHaa
PeeHaa

Reputation: 72709

$gameInfo = array();
for($i = 0; $i < 10; $i++){
    $friendsInfo = $facebook->api('/' . $randomfriends[$i]);
    $gameInfo[] = array(
      $friendsInfo['first_name'],
      $friendsInfo['last_name'],
      $friendsInfo['hometown']['name'],
      $friendsInfo['location']['name'],
      $friendsInfo['about']
    );
}

Upvotes: 0

GWW
GWW

Reputation: 44161

$gameInfo = array();
for($i = 0; $i < 10; $i++){
    $friendsInfo[$i] = $facebook->api('/' . $randomfriends[$i]);
    $gameInfo[] = array(
      $friendsInfo[$i][first_name],
      $friendsInfo[$i][last_name],
      $friendsInfo[$i][hometown][name],
      $friendsInfo[$i][location][name],
      $friendsInfo[$i][about]
    );
}

Out of curiosity was that code supposed to be like a python list comprehension? or was it from another language?

Upvotes: 1

Related Questions