Итак, расскажу вкратце. Значит, имеется массив $a , из него вытаскиваем ключи в массив $c,потом из $a вытаскиваем значения и ложим их в $d,потом перемешиваем массив $a. После всех этих дейсвтий исопльзуя массивы $c and $d деелаем тот же массив $a , но прежний массив $a остается, то есть после перемешивания будет по другому. Вот кодтеперь мне нужно сделать тот же массив $a? но уже после перемешивания он будет другим.) <?php $a=array("book1"=>'Ayupov',"book2"=>'Borisov',"book3"=>'Drozdov'); $c=array(); foreach ($a as $key=>$x) { $c[]=$key; } $d=array(); foreach ($a as $klo=>$v) { $d[]=$v; } reset($a); print_r ($a); print_r ($c); print_r ($d); shuffle ($a); вот сюда создаем массив $a , но он уже перемешанный(используя $c and $d, наверное) print_r ($a); ?>
теперь вижу, да... но задача все равно осталась undefined... что вы хотите-то добиться? вы шафнули А, зачем вам теперь "используя Ц и Д наверное"?
блин, вот я сам не понимаю, мне препод сказал, дело в том что он наверное имел ввиду что, как бы после перемешивания массива а, заново создать ее можно только используя Ц И Д , мол если массив перемешивается , сделать ее будет сложнее . Как же это сделать? , я вообще не понимаю
ааааааа)))) ну вам в мануал по функциям работы с массивом. все чудо будет заключаться в объединении Ц как ключей и Д как значений в "новый" массив А который будет как первоначальный А до шафла.
я перепробывал, множество циклов используя разные команды, у меня почему-то значеиня передаются а ключи нет . Добавлено спустя 1 минуту 11 секунд: хмм можете показать как вы это сделали? я возьму это на вооружение в следующий раз.
показывайте как пробовали. поясню что вы сделали не так и (так и быть) дам вам два алгоритма из моей головы.
Сейчас напишу Добавлено спустя 4 минуты 28 секунд: <?php $a=array("book1"=>'Ayupov',"book2"=>'Borisov',"book3"=>'Drozdov'); $c=array(); foreach ($a as $key=>$x) { $c[]=$key; } $d=array(); foreach ($a as $klo=>$v) { $d[]=$v; } print_r ($a); print_r ($c); print_r ($d); shuffle ($a); while(list($er,$b)=each($c)) { $a[$b]=$v; } print_r ($a); Добавлено спустя 52 секунды: там где each($c) пробовал а , но не получилось , ибо я нуб
У вас есть массив $a который заполнен через " ключ=>значение ". Есть объявленная переменная $c как массив. Вы разбираете заполненный массив $a через " ключ=>значение ". Заполняете массив $c через числовые ключи, значением ключа массива $a. $c[]=$key; Получается Код (PHP): $c[0] //выведет ключ массива $a который первый-это book1 Смысл так делать?( Что требуется, зачем было 2 раз записывать и что нужно перемешать. Объясните, что было в задании? Код не совсем понятный... Написал так, может быть оно?)) Код (PHP): function pre(array $array) { echo'<pre>'; print_r($array); echo'</pre>'; } $arrayBook=array('book1'=>'Ayupov','book2'=>'Borisov','book3'=>'Drozdov'); pre($arrayBook); $arraySort=array_keys($arrayBook); shuffle($arraySort); $arrayBook=array_merge(array_flip($arraySort),$arrayBook); pre($arrayBook);
неет, не правильно . Дело в том что первы ассоциативный массив $a после премешивание будет не по пораядку и поэтому используя $c and $d ну или по другому заново образовав массив $a , он будет не по порядку , черт возьми, как это сделать?!
УаУ Ganzal вы превосходны, обьясните как вы это сделали пожалуйста по порядку Добавлено спустя 41 секунду: а есть еще способы сделать? напиштие их тоже пожалуйста
Код (PHP): $a=array("book1"=>'Ayupov',"book2"=>'Borisov',"book3"=>'Drozdov'); $c=$d=array(); function pre(array $array) { echo'<pre>'; print_r($array); echo'</pre>'; } function foreachs(array $arr1,array &$arr2,$bool=true,$add=true) { foreach($arr1 as $key=>$val) { if($add) { $arr2[]=($bool)?$val:$key; } else { global $d; $arr2[$d[$key]]=$val; } } } foreachs($a,$c); foreachs($a,$d,false); pre($a); pre($c); pre($d); shuffle($a); foreachs($c,$a,false,false); pre($a); Если еще посидеть можно лучше сделать... Это так просто проверка)))
Ну тогда еще задание: Переверните ключи и значения массива Код (PHP): $arrayBook=array('Ayupov','Borisov','Drozdov'); Чтобы они были по убыванию, а не по возрастанию. Код (PHP): Array ( [0] => Ayupov [1] => Borisov [2] => Drozdov ) Переварачиваем: Код (PHP): Array ( [2] => Drozdov [1] => Borisov [0] => Ayupov )