foreach() с двумя массивами

Discussion in 'PHP' started by Ru}{eeZ, 15 Nov 2008.

  1. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Возможно ли в foreach() запихнуть 2 массива? Что-то типа:
    foreach($new_name as $new_name2 AND $new_content as $new_content2) {}
     
    1 person likes this.
  2. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    _ttp://ua2.php.net/foreach
    нет. а зря.. =\
     
    1 person likes this.
  3. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    PHP:
    foreach(array_combine($firstArray$secondArray) as $first => $second)
    {

    }
     
    2 people like this.
  4. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    можно к примеру слить два массива в один http://www.php.su/functions/?array-merge
    а потом уже циклить)
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ru}{eeZ Видимо Mr.The невнимательно дает ссылки, в них все есть))

    PHP:
    $a=array('123','234','345');
    $b=array('a','b','c');

    while (list(, 
    $v1) = each($a)) {
        list(,
    $v2) = each($b);
        echo 
    "Value: $v1 = $v2<br />\n";
    }
    Или вообще так:
    PHP:
    while ((list(, $v1) = each($a)) && (list(,$v2) = each($b))) {
        echo 
    "Value: $v1 = $v2<br />\n";
    }
    Правда проблемы начнутся, сразу как только массивы будут разной длины. Но это уже мелочи
     
    _________________________
    #5 Gifts, 15 Nov 2008
    Last edited: 15 Nov 2008
  6. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Всем большое спасибо, но мне уже mr.The подсказал про for() ))
    Вот оно, получившееся:
    for($i = 0; $i < count($new_name); $i++) {
    $content .= template('template/news.html', array(
    'NEW_NAME' => $new_name[$i],
    'NEW_CONTENT' => $new_content[$i],
    'NEW_DATE' => $new_date[$i]
    ));
    }
     
    1 person likes this.
  7. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    а то что ты даёш это уже не foreach)) именно там это нормально сделать нелья =\
     
  8. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    Блин.. вопрос в тему оказался... только что хотел такой же задать))) Спасибо )
     
  9. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    While использовать не советую, ибо цикл прерывается, когда находит пустое значение в массиве.
     
    1 person likes this.