2011-08-30 45 views
0

基本上,我有陣列$name$followers$imageurl,我想在$followers陣列數值安排,也相應地更新的$name$imageurl佈置。基於另一個數組的值創建包含等級的數組?

例如,$followers[0] = 2783848,$name[0] = "Rob"$imageurl[0] = "http://xxx.com/image.jpeg"其中所有三個數組通過具有相同的數組密鑰鏈接。

良好的措施,這是我整個代碼:

$screennames = array(
       0 => "LilKim", 
       1 => "NickiMinaj", 
       2 => "drakkardnoir", 
       3 => "LilTunechi", 
       4 => "kanyewest", 
       5 => "RealWizKhalifa", 
       6 => "beyonce", 
       7 => "KELLYROWLAND", 
       8 => "LupeFiasco", 
       9 => "TinieTempah", 
       10 => "50cent", 
       11 => "TRINArockstarr", 
       12 => "iamdiddy", 
       13 => "Timbaland", 
       14 => "chrisbrown" 
        ); 

for($i = 0; $i < 15; $i++) { 
$xml[$i] = @simplexml_load_file('http://api.twitter.com/1/users/show.xml?screen_name=' . $screennames[$i]); 
$name[$i] = $xml[$i]->name; 
$followers[$i] = $xml[$i]->followers_count; 
$imageurl[$i] = $xml[$i]->profile_image_url; 
} 

任何意見/答案/意見將不勝感激:)!

我也不確定這是查詢Twitter API的最佳方式,所以如果有人有任何建議,請隨時留下:)。

UPDATE:

我想我已經找到了一種方法,以更準確地把這個;

我有陣列$name,$followers$imageurl其中每個值是相對的,例如, $name[0]是相對於$followers[0]$imageurl[0]。我想創建一個第四陣列$rank其中包含1-15順序根據追隨者的相對值的值,例如:

$followers = array(0 => 278738, 1 => 32784, 2 => 103562, 3 => 37848); // Etc from keys 0 - 14 

$rank[0] = 1; 
$rank[1] = 4; 
$rank[2] = 2; 
$rank[3] = 3; 

這應該使一個更容易找出我要找的。

回答

0

如果你保存你的密鑰,應該沒關係。對於那個使用asort。當循環訪問名稱數組時,這些值將按字母順序排列(或者,取決於您的參數params),而索引(鍵,數字)將超出數字順序。

//show by name alphabetically 
asort($names); //puts names in alphabetic order, while preserving key associations 
foreach ($names as $key=>$value) { 
    echo "$value has " . $followers[$key] . ' followers<br>'; 
} 

//show ordered by most followers 
arsort($names, SORT_NUMERIC); //puts followers in reverse numeric order, while preserving key associations 
foreach ($followers as $key=>$value) { 
    echo $name[$key] . ' has $value followers<br>'; 
} 

更新

//Create rank array 
$rank=0; 
arsort($names, SORT_NUMERIC); //puts followers in reverse numeric order, while preserving key associations 
foreach ($followers as $key=>$value) { 
    $rank++; 
    $ranks[$rank]=$key; 
} 

然後你就可以通過等級循環,並顯示它,或者說insert語句或什麼的。

foreach ($ranks as $rank=>$key) { 
    echo "{$name[$key]} has rank $rank"; 
    $sql="INSERT INTO ranks ('username','followers','rank') VALUES ('{$name['$key']}','{$followers['$key']}','$rank')"; 
} 
+0

打擾我的無知,但沒有輸出「羅布有829389追隨者」例如? – Avicinnian

+0

它應該是。這不是你想要的嗎?如果你對追隨者專欄做了一些調整,並且通過它,如果你想展示最多追隨者的話,那麼它的工作原理也是一樣的。 – profitphp

+0

感謝您的輸入:)。我意識到我的問題並沒有完全擺平,我已經更新了它。我真正想要的是根據'$ followers'的值建立第四個數組,其值爲'1-15'。 – Avicinnian

相關問題