За последние 24 часа нас посетили 20253 программиста и 1084 робота. Сейчас ищут 738 программистов ...

Цикл

Тема в разделе "PHP для новичков", создана пользователем zhenia3003, 9 май 2017.

  1. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    174
    Симпатии:
    3
    PHP:
    1. $i = 0;
    2. foreach ($array as $key) {
    3.     $r.= $key;
    4.     if ($i % 10 == 0) {
    5.         funct($r);
    6.     }
    7. }
    Каждый 10 результат вызываю в цикле функцию. Проблема в том, что в функции переменная $r не продолжается, а начинается с начала. Т.е. $r начинается не с 10 результата, а с первого. Как сделать, чтобы начинался с 10,20,30 и тд,??
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А $i наращивать не забыли?
     
  3. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    174
    Симпатии:
    3
    Решение, после вызова функции дописать это:
    $r += 10;
     
  4. superlamer

    superlamer Новичок

    С нами с:
    2 фев 2017
    Сообщения:
    20
    Симпатии:
    0
    PHP:
    1. foreach ($array as $key => $val)
    2. {
    3. if(stristr($val, 'check') == TRUE) {
    4. }
    5. }

    , в результате получаю:

    PHP:
    1. Array ( [one] => 1 ) Array ( [two] => 2 ) Array ( [three] => 3 )
    Не подскажете, как в данном случае получить на выходе форыча только один массив (вместо нескольких), который не выводится в print_r, но с которым можно продолжать работать дальше?
     
  5. superlamer

    superlamer Новичок

    С нами с:
    2 фев 2017
    Сообщения:
    20
    Симпатии:
    0
    Подразумевалось - только один массив, содержащий все эти полученные данные, вместо нескольких массивов.
     
  6. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    1. ты вообще ничего не получаешь на выходе, твой код печатает, забывает и идет дальше. Если тебе нужен на выходе массив, просто пиши
    Код (Text):
    1. $arr[] = $key;
    а уже после конца цикла выводи $arr
    А, перед циклом еще хорошо бы объявить $arr = [];
     
  7. superlamer

    superlamer Новичок

    С нами с:
    2 фев 2017
    Сообщения:
    20
    Симпатии:
    0
    Скажите, как циклом получить из первого массива значения, руководствуясь ключами (или значениями) второго массива? это можно сделать через, скажем, array_search или результирующий массив, а вот как сделать через цикл (ы) ?
     
  8. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Перебираешь циклом первый массив. В цикле вызываешь элементы второго массива по ключу получаемому из первого массива.