Добрый день. Возникла задача перемешать два массива по соотношению 1к3 Т.е. 2 массива. 1 массив 100,200,300,400,500 2 массив 111,112,113,114,115,116,117,118,119,120 Должно выйти в новом массиве 100,111,112,113,200,114,115,116,300,117,118,119,400,120 Никак не могу сообразить...может подскажите какую-то функцию, спасибо
https://php.ru/manual/function.array-merge.html https://php.ru/manual/function.sort.html А по какому принципу массив сортируется?!
Код (Text): $pervo=Array(); $sql = "SELECT * FROM `zayvki` WHERE `prioretet`='2' AND `status`='1' AND `let`='2' ORDER BY `dataZayvki` ASC"; $result = mysql_query($sql); while ($itog = mysql_fetch_array($result, MYSQL_ASSOC)) { $pervo[]=$itog['id']; } $obych=Array(); $sql = "SELECT * FROM `zayvki` WHERE `prioretet`='0' AND `status`='1' AND `let`='2' ORDER BY `dataZayvki` ASC"; $result = mysql_query($sql); while ($itog = mysql_fetch_array($result, MYSQL_ASSOC)) { $obych[]=$itog['id']; } Вот мои два массива, надо что бы массив $pervo смешался с $obych по соотношению 1 к 3
Вообщем есть таблица в БД - ОЧЕРЕДЬ... там есть колонки ID,NAME,nomerOcheredi,prioretet Нужно сделать выборку таким образом что бы выбрать всех из таблица где prioretet (0,1), и что бы выборка дала результат одного с приорететом 1, затем ТРЕХ с приорететом 0, затем заново ОДНОГО с приоеретом 1, затем ТРЕХ с приорететом 0..и так до конца пока все записи не кончатся... известо что с приоеретом 1 меньше в разы...т.е. когда закончатся с приоритетом 1, просто продолжил выбирать всех с приорететом 0
Достаточно просто ИД --- Добавлено --- Получается я хочу в результатах выборки в переменную дописывтаь +1, а затем обновить эту же запись в таблицы и обновить nomerOcheredi...
делаешь Код (Text): select * from zayvki where prioritet in(0, 2) and status=1 and let=2 order by `dataZayvki` ASC потом PHP: $res = [0 => [], 2 => []]; while ($itog = mysql_fetch_array($result, MYSQL_ASSOC)) { $res[$itog['prioritet']][] = $itog; } и смотришь что вышло
@EleGant23, если "на пальцах", то: PHP: $arr1 = [100,200,300,400,500]; $arr2 = [111,112,113,114,115,116,117,118,119,120]; $arr = []; $elem2 = reset($arr2); $elem = reset($arr1); while($elem !== false) { $arr[] = $elem; $cnt = 3; while($elem2 !== false && $cnt--) { $arr[] = $elem2; $elem2 = next($arr2); } if($elem2 === false) { break; } $elem = next($arr1); } //while($elem2 !== false) { // $arr[] = $elem2; // $elem2 = next($arr2); //} var_dump($arr); В зависимости от того, что делать с "хвостами" массивов - или закомментировать if ... break, или раскомментировать завершающий while. Или и то и другое