是否有可能在foreach循環中有AND?和在PHP foreach循環?
例如,
foreach ($bookmarks_latest as $bookmark AND $tags_latest as $tags)
是否有可能在foreach循環中有AND?和在PHP foreach循環?
例如,
foreach ($bookmarks_latest as $bookmark AND $tags_latest as $tags)
您可以隨時使用循環計數器訪問第二個數組中的相同索引,就像您在foreach循環中訪問的那樣(我希望這很有意義)。
例如: -
$i = 0;
foreach($bookmarks_latest as $bookmark){
$result['bookmark'] = $bookmark;
$result['tag'] = $tags_latest[$i];
$i++;
}
那應該達到什麼樣的你正在嘗試做的,否則使用由dark_charlie sugested的辦法。
謝謝,正是我正在尋找的。 – ritch 2011-06-12 19:06:55
簡短的回答:沒有。您始終可以將書籤和標籤放入一個數組中並對其進行迭代。
或者你也可以這樣做:
reset($bookmarks_latest);
reset($tags_latest);
while ((list(, $bookmark) = each($bookmarks_latest)) && (list(,$tag) = each($tags_latest)) {
// Your code here that uses $bookmark and $tag
}
編輯:
爲一個陣列的解決方案所要求的例子:
class BookmarkWithTag {
public var $bookmark;
public var $tag;
}
// Use the class, fill instances to the array $tagsAndBookmarks
foreach ($tagsAndBookmarks as $bookmarkWithTag) {
$tag = $bookmarkWithTag->tag;
$bookmark = $bookmarkWithTag->bookmark;
}
請你可以提供一個這樣的例子。 – ritch 2011-06-12 18:51:04
你不能做到這一點。
,但你可以
<?php
foreach($keyval as $key => $val) {
// something with $key and $val
}
上面的例子中的作品真的很好,如果你有一個hash
類型的數組,但如果你已經在數組中嵌套值我建議你:
或選項2
<?php
foreach ($keyval as $kv) {
list($val1, $val2, $valn) = $kv;
}
不,但有很多方法可以做到這一點,例如:
reset($tags_latest);
foreach ($bookmarks_latest as $bookmark){
$tags = current($tags_latest); next($tags_latest);
// here you can use $bookmark and $tags
}
不,不是。
您必須手動寫出一個使用索引或內部指針同時遍歷兩個數組的循環。
是的,對於完整性:
foreach (array_combine($bookmarks_latest, $tags_latest) as $bookm=>$tag)
這將是得到你想要的本機方式。但它只有在兩個輸入數組具有完全相同的長度時纔有效。 (使用單獨的迭代密鑰是更常見的方法,但是。)
我不明白什麼樣的情況會要求這樣。但你不能這樣做。你想做什麼? – Rob 2011-06-12 18:50:38
請參考此其他問題:http://stackoverflow.com/questions/6313340/codeigniter-passing-arguments-from-view-to-controller – ritch 2011-06-12 18:53:44