2011-10-02 28 views
0

代碼:如何在同一頁面上傳遞變量時從foreach循環中的數組中選擇第一個值?

$persons = array(); 
$tags = array(); 
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
    if(!isset($persons[$row["id"]])) { 
    $persons[$row["id"]]= $row; 
    $tags[ $row['id'] ] = array(); 
    } 
    $tags[ $row['id'] ][] = $row['tag']; 
}  

foreach($persons as $pid=>$p){ 
    $tag1 = $p["tag"]; 
    $tag1ish = $tags[$p['id']]; 
} 
+3

你的意思是如何獲得數組的第一個元素? –

+0

@mosty mostacho是的。獲取標籤數組的第一個元素 – checkenginelight

回答

2
foreach($persons as $pid=>$p){ 
    $tag1 = $p["tag"]; 
    $tag1ish = $tags[$p['id']]; 

    /* to get the first tag, there are many options e.g.: */ 

    $first_tag = $tag1ish[0]; // given u use [] syntax as above. 
} 
1

你可能避免調用一個foreach,只是使用的第一個元素

$tag1 = $persons[0]["tag"]; 

或使用current

$tag1 = current($persons); 
0

如果我沒有理解好,你可以使用reset()函數。它收到一個數組作爲參數並返回第一個元素。

+0

no,reset - 將數組的內部指針設置爲其第一個元素 –

+1

並返回第一個數組元素的值。 –

+0

是的你是對的,對不起! –

0
foreach($persons as $pid=>$p){ 
    // is this what you mean..? 
    $theTagYouWant = $tags[0]; 
    $tag1 = $p["tag"]; 
    $tag1ish = $tags[$p['id']]; 
} 
1

我想澄清並沒有太大的幫助:P無論如何,我會reccomend(或至少按字母順序)命令由ID標籤即可。所以標籤的順序將是相同的,訪問數組的第一個元素將始終返回相同的標籤。

+0

嗯,這是我想要的,但現在我想不出來。謝謝你清理一下。我有我的排名,從1到4數字我的標籤。 – checkenginelight

+0

我不知道排名,但ID是唯一的,這是你最好的選擇。可能將它添加到SQL代碼中,或者甚至在PHP中對數組進行排序可能會有所斬獲。 –

相關問題