简体   繁体   中英

Dynamically constructing a Multidimensional Array

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')
);

Any help you can give me would be greatly appreciated

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 .

$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?

$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']
    );
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM