Jump to content
  • 0

Функция shuffle


N-Mak
 Share

Question

Господа, что-то я никак не могу понять принцип работы САБЖевой функции.

<?php
$filename = "myfile.txt";

$newfile = @fopen($filename, "r") or exit("Could not open file");
//Создаем массив из содержимого файла, разделитель - пробел
$file_contents = @fgetcsv($newfile, filesize($filename)," ")
or exit("Could not read file contents");
//Перемешиваем и результат помещаем в переменную result
$result = shuffle ($file_contents);

echo $result . "
";
echo sizeof($file_contents) . "
";
echo sizeof($result) . "
";

//Все грустно
fclose($newfile);

?>

Размер массива ($file_contents) равен числу слов в файле. После перемешивания - shuffle ($file_contents); - размер массива $result равен 1. В общем, функция должна мешать содержимое массива в случайном порядке, а на деле содержимое массива просто пропадает.

Поясните, пожалуйста чего я не догоняю.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Естественно я смотрел. Просто, видимо, не проникся сокральным смыслом.

shuffle ? Перемешать массив

Описание: bool shuffle ( array &$array )

Эта функция перемещает элементы массива в случайном порядке.

У того, кто писал этот мануал был девиз "Краткость - сес. т."

Link to comment
Share on other sites

  • 0
У того, кто писал этот мануал был девиз "Краткость - сес. т."

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

bool shuffle ( array &$array )

Функция shuffle принимает в качестве аргумента ссылку на переменную типа массив и возвращает значение типа bool (true/false) в зависимости от успешности выполнения перемешивания.

В вашем случае:

echo '<pre>';
echo 'Массив до перемешивания:';
print_r($file_contents);

$result = shuffle ($file_contents);

echo 'Массив после перемешивания:';
print_r($file_contents);

echo 'А $result является:';
var_dump($result);

p.s. учите теорию (конкретно: типы данных, ссылки). Быдлокодерство не есть хорошо)

Link to comment
Share on other sites

  • 0

На самом деле вопрос как раз и возник когда я пытался применить некоторые теоретические выкладки на практике: они никак не хотели применяться. К сожалению, авторы большинства учебников и пособий пишут до половины, вторую половину, они видимо оставляют на потом и благополучно забывают. Вот и не работает их теория не практике. На практике там bool лежит...

Кстати, в целях расширения кругозора, можно Вас попросить полнее раскрыть тему "бадлокодерства" =) Очень меня заинтересовало это явление и мое место в нем =)

Link to comment
Share on other sites

  • 0

Если кратко: "отсутствие языковой грамотности, понимания собственного кода и культуры программирования" (с) lurkmore

Некоторые вырастают в нормальных прогеров, а некоторым этот рост и не нужен. Разумеется являлся оным и сам, когда учился.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy