2014-01-17 24 views
-5
foreach($top_9_friends as $key => $user) 
{ 

array_push($scores, array( 

    "id" => key($friends_rank_data), 
    "likes" => $user['likes'], 
    "comments" => $user['comments'], 
    "posts" => $user['posts'], 
    if(1 == 1) { 
     $url = 'https://graph.facebook.com/' . key($friends_rank_data) . '/?fields=gender&access_token=' . $access_token ; 
     $contents = file_get_contents($url); 
if($contents) 
{ 
    $dataa = json_decode($contents, true); 
} 
    "sex" => $dataa['data']['0']['gender'],  
    } 
) 

); 
} 

谁能帮我怎么写正确的代码, 我哪里错了 如何输入正确的日期如何创建,如果在阵列

+1

这段代码**应该做什么**?你得到的输出是什么? – Mureinik

+2

为什么要在你的数组中声明if语句?大声笑... – Ryan

回答

1

不知道你试图尝试什么,但只是分开你如何构建阵列。

也有没有需要如果(1 == 1){...},这只是意味着你总是这样做,为什么要麻烦?

foreach ($top_9_friends as $key => $user) { 

    // create array 
    $arr = array(
     "id" => key($friends_rank_data), 
     "likes" => $user['likes'], 
     "comments" => $user['comments'], 
     "posts" => $user['posts'] 
    ); 

    $url = 'https://graph.facebook.com/' . key($friends_rank_data) . '/?fields=gender&access_token=' . $access_token; 
    $contents = file_get_contents($url); 
    if ($contents) { 
     $dataa = json_decode($contents, true); 

     // add this array key inside the if statement 
     $arr["sex"] = $dataa['data']['0']['gender']; 
    } 
    array_push($scores, $arr); 
} 
+0

阵列 ( [0] =>数组 ( [ID] => 100000382928634 [喜欢] => 10 [注释] => 6 [帖] => 41 [性别] => ) ) – user3186365

1

执行,如果前阵:

foreach($top_9_friends as $key => $user) 
{ 

    if(1 == 1) { 
     $url = 'https://graph.facebook.com/' . key($friends_rank_data) . '/?fields=gender&access_token=' . $access_token ; 
     $contents = file_get_contents($url); 
     if($contents) 
     { 
      $dataa = json_decode($contents, true); 
     } 
    } 

    array_push($scores, array( 
     "id" => key($friends_rank_data), 
     "likes" => $user['likes'], 
     "comments" => $user['comments'], 
     "posts" => $user['posts'], 
     "sex" => $dataa['data']['0']['gender'],  
    ); 
} 
+0

您的答案和我的答案之间的区别是,像“性”和“网址”这样的字段将被设置,即使它们为空或不存在。在我的解决方案中,未使用的字段从未设置为开头。所有这些都是OP正在寻找的问题。好答案。 – Dutchie432

+0

@ Dutchie432的OP从URL中提取内容,所以我假定它不具有阵列中要被设置:) – Andy

+0

阵列 ( [0] =>数组 ( [ID] => 100000382928634 [喜欢] = > 10 [评论] => 6 [文章] => 41 [性爱] => ) ) – user3186365

1

尝试这样的事情。为每个新项目创建一个数组,并首先设置您知道的值。然后,您可以根据您的if声明有条件地为其添加值。然后,一旦数组项目被构建,就将其粘贴到scores阵列上。

<?php 

foreach($top_9_friends as $key => $user){ 

    //Temporary Array with entity proprties 
    $new_array_item = array( 
     "id" => key($friends_rank_data), 
     "likes" => $user['likes'], 
     "comments" => $user['comments'], 
     "posts" => $user['posts'] 
    ); 

    //Conditionally Add values based on IF logic 
    if(1 == 1) { 
     $new_array_item['url'] = 'https://graph.facebook.com/'.key($friends_rank_data).'/?fields=gender&access_token='.$access_token ; 

     $contents = file_get_contents($new_array_item['url']); 
     if($contents) { 
      $dataa = json_decode($contents, true); 
      $new_array_item['sex'] = $dataa['data']['0']['gender']; 
     } 
    } 
    //Tack Temporary Array Item onto $scores 
    $scores[]=$new_array_item; 
} 

?> 
+0

警告:file_get_contents()[function.file-get-contents]:文件名不能为空:$ contents = file_get_contents($ url); – user3186365

+0

我的错误。有一个错字 - 尝试新的代码。谢谢。 – Dutchie432