перемешиваем массивы одним алгаритмом, реально ли?

guru85

Постоялец
Регистрация
24 Мар 2010
Сообщения
100
Реакции
4
срочно нужно знать, можно ли перемешать, разные элементы массива в разных переменных одним алгоритмом? допустим имеем три переменные содержащие по 10 элементов массива, поочередно взяв первые элементы из переменных имеем нужное значение, необходимо случайнам образом перемешать эти элементы так, чтобы взяв элементы из массива не потерялась связь между переменными.
 
Интересно, что имелось в виду :)
Даже не понимая вопроса, осмелюсь предположить, что такой встроенной функции нет. Создавай временный массив и уже его с помощью
PHP:
shuffle();
Вычитал все-таки вопрос:
можно ли перемешать, разные элементы массива в разных переменных одним алгоритмом?
Ответ: да, можно!
 
я сам завис, но мне надо вот такую штуку
PHP:
$fruits = array("lemon", "orange", "banana", "apple");
$fruits1 = array("желтый", "ораньживай", "банан", "красный");
$fruits2 = array("кислый", "сладкий", "мягкий", "сочное");
а после перемешивания получить
PHP:
$fruits = array("orange", "banana", "lemon",  "apple");
$fruits1 = array("ораньживай", "банан", "желтый",  "красный");
$fruits2 = array("сладкий", "мягкий", "кислый",  "сочное");

и на выходе получаем в первом и во втором разное но соответствующее
PHP:
echo $fruits[0]
echo $fruits1[0]
echo $fruits2[0]

и если не сложно то примерчик.
 
Еле с трудом понял )
Объедини в один массив потом как gres_18 написал сделай, а потом explode дели.
 
как правильно их объединить? чтоб не чего не сбилось? может быть я иду не верным путем, изначально мне необходимо перемешать вот что, я использую класс для rss $xml = new SimpleXMLElement($rssurl, NULL, TRUE); и при парсинге получаю заголовки описания и т.д. но при постиге в свой рес мне необходимо перемешать данные от туда не теряя соответсвий заголовков непосредственно к постам. просто перемешав массив с тайтлами и постами все собьется. надо мешать их одни алгоритмом.
 
я сам завис, но мне надо вот такую штуку
PHP:
$fruits = array("lemon", "orange", "banana", "apple");
$fruits1 = array("желтый", "ораньживай", "банан", "красный");
$fruits2 = array("кислый", "сладкий", "мягкий", "сочное");
а после перемешивания получить
PHP:
$fruits = array("orange", "banana", "lemon",  "apple");
$fruits1 = array("ораньживай", "банан", "желтый",  "красный");
$fruits2 = array("сладкий", "мягкий", "кислый",  "сочное");
и на выходе получаем в первом и во втором разное но соответствующее
PHP:
echo $fruits[0]
echo $fruits1[0]
echo $fruits2[0]
и если не сложно то примерчик.
Как я понимаю,все проще чем казалось. Нужно просто перемешать все массивы по отдельности. Можно как-то так попробовать:
PHP:
$fruits = array("lemon", "orange", "banana", "apple");
$fruits1 = array("желтый", "ораньживай", "банан", "красный");
$fruits2 = array("кислый", "сладкий", "мягкий", "сочное");
shuffle($fruits);
shuffle($fruits1);
shuffle($fruits2);
print $fruits[0].' ';
print $fruits1[0].' ';
print $fruits2[0].' ';
 
нет на выходе apple красный мягкий это не то. вот вроде получилось
PHP:
$fruits = array("lemon", "orange", "banana", "apple");
$fruits1 = array("желтый", "ораньживай", "банан", "красный");
$fruits2 = array("кислый", "сладкий", "мягкий", "сочное"); 
$fruitsmass=array($fruits ,$fruits1,$fruits2 );
shuffle($fruitsmass);
echo  $fruitsmass[0][0];
echo  $fruitsmass[1][0];
echo  $fruitsmass[2][0];

echo  $fruitsmass[0][1];
echo  $fruitsmass[1][1];
echo  $fruitsmass[2][1];
 
срочно нужно знать, можно ли перемешать, разные элементы массива в разных переменных одним алгоритмом? допустим имеем три переменные содержащие по 10 элементов массива, поочередно взяв первые элементы из переменных имеем нужное значение, необходимо случайнам образом перемешать эти элементы так, чтобы взяв элементы из массива не потерялась связь между переменными.

PHP:
$fruits = array("orange", "banana", "lemon",  "apple");
$fruits1 = array("ораньживай", "банан", "желтый",  "красный");
$fruits2 = array("сладкий", "мягкий", "кислый",  "сочное"); 
for($i=0; $i<count($fruits); $i++){ 
 $array = array ($fruits[$i],$fruits1[$i],$fruits2[$i]); 
shuffle($array); 
echo $array[0].' ';
echo $array[1].' ';
echo $array[2].'<br>';
}
 
все же не получилось вот что мне надо, имея массивы
PHP:
$fruits = array("title", "title1", "title2", "title3");
$fruits1 = array("des", "des1", "des2", "des3");
$fruits2 = array("thumb", "thumb1", "thumb1", "thumb3");
на выходе вызывая первый элемент получить либо
PHP:
title des thumb
либо
PHP:
title1 des1 thumb1
либо
PHP:
title3 des3 thumb3
 
Назад
Сверху