Перебор массива (PHP)

12
S
На сайте с 21.03.2011
Offline
0
2101

Здравствуйте, уважаемые форумчане!

Прошу прощения, если мой вопрос покажется вопросом нуба, но тем не менее, ситуация имеет место быть.

Существует массив:

$array[0][0] = Машу

$array[0][1] = Сашу

$array[0][2] = Иру

$array[0][3] = Катю

$array[1][0] = отправили

$array[1][1] = позвали

$array[2][0] = гулять

$array[2][1] = в магазин

$array[2][2] = на учёбу

...

На выходе нужно, чтобы элементы $array[0] были сопоставлены с элементами $array[1], $array['2'] и т.д.

Например:

Сашу позвали на учёбу

Машу позвали на учёбу

Сашу отправили гулять

...

и т.д.

Кол-во элементов массива $array может быть неограничено.

Подскажите, пожалуйста, как быть?

RL
На сайте с 15.06.2010
Offline
28
#1

Можно через count() определить кол-во элементов для каждого ключа массива и сформировать вложенные циклы. Это если по простому.

Примерно так:

for($i=0; $i<count($array[0]); $i++)

{

тут вкладывать вложенные циклы с перебором массива через $i (...$array[$i]...) постепенно формируя строки вариантов.

}

Примерно так. щас не могу полностью скрипт написать, и потестить - убегаю. Написал для примера, если не поймете, потом скину готовый пример

S
На сайте с 21.03.2011
Offline
0
#2

Спасибо, ребята.

gormarket
На сайте с 29.12.2010
Offline
47
#3


foreach($array[0] as $object) {
foreach($array[1] as $action) {
foreach($array[2] as $direction) {
print $object.''.$action.''.$direction.'<br />';
}
}
}
Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
M
На сайте с 20.08.2004
Offline
376
#4

я так понимаю это для генерации текста ссылки.

воспользуйтес, к примеру, allsubmitterom -возможностей больше и не надо придумывать велосипед

отец сыночка, лапочки дочки и еще одного сыночка
S
На сайте с 21.03.2011
Offline
0
#5
gormarket:

foreach($array[0] as $object) {
foreach($array[1] as $action) {
foreach($array[2] as $direction) {
print $object.''.$action.''.$direction.'<br />';
}
}
}

Спасибо.

А если кол-во элементов неограничено? Как в этом случае зациклить?

M
На сайте с 20.08.2004
Offline
376
#6

вам дали решение выше.

оно универсальное для вашей задачи.

S
На сайте с 21.03.2011
Offline
0
#7
Miracle:
вам дали решение выше.
оно универсальное для вашей задачи.

Вы меня извините, конечно, но я не уверен, что обращался к вам.

M
На сайте с 20.08.2004
Offline
376
#8

извиняю.

а я обращаюсь к вам, включите голову, скриптос блин. :)

Lord Maverik
На сайте с 15.04.2003
Offline
471
#9

$result = '';
for($i=0; $i<count($array); $i++)
{
$result .= array_rand($array[$i]).' ';
}
RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
Lord Maverik
На сайте с 15.04.2003
Offline
471
#10
avan-in:
плохой вариант, будут повторения

Смотря для чего это надо. Все повторения можно впоследствии легко убрать, получив на выходе случайный набор комбинаций нужного количества.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий