Различные вопросы по PHP и MySQL

249K
.
ДоХтор
# Sitego (10.06.2016 / 13:30)
Опять я, со своими строчными функциями)
Как можно вывести в отдельный файл "пары" строк определённое количество раз?
Например, есть файл file.txt из него надо брать "пару" строк - чётная и нечётная
Честно говоря, я не понял, что требуется.
определённое количество раз
и
случайным порядком
ниасилил. Можешь подробнее?
.
Enter нажат, к чему теперь рыданья…
Пример исходного файла

1. Вася
2. Водитель автобуса
3. Маша
4. Детский врач
5. Борис
6. Слесарь
7. Анна
8. Продавец в магазине
9. Дима
10. Токарь

Нужно в новый файл, к примеру, записать случайным образом три "пары", чтобы получилось примерно так, в зависимости как скрипт случайно выберет пары.

1. Вася
2. Водитель автобуса
5. Борис
6. Слесарь
9. Дима
10. Токарь
.
Sitego, ясно. Минут через пятнадцать напишу.
.
ramzes
попробуй
$data = file('file.txt');
$new = [];
for($i=0; $i<count($data) /2; $i = $i+2){
    $new[] = ['name' => $data[$i], 'prof' => $data[$i+1]];
}

print_r($new);

если надо перемешать, то перед выводом просто добавить shuffle($new);
.
Enter нажат, к чему теперь рыданья…
ramzes, это нужно эту переменную $new в новый файл писать?
.
У меня по больше кода получилось
$file = file('file.txt');

$arr_key = []; $arr_val = [];
for ($i = 0, $j = count($file); $i < $j; $i++) {
    if (!($i % 2)) {
        $arr_key[] = $file[$i];
    } else {
        $arr_val[] = $file[$i];
    }
}

$arr_new = array_combine($arr_key, $arr_val);
for ($i = 0; $i < 3; $i++) {
    $key = array_rand($arr_new);
    file_put_contents('new_file.txt', $key . $arr_new[$key] ."\r\n", FILE_APPEND);
}
.
Enter нажат, к чему теперь рыданья…
ДоХтор, твой пишет сразу, спасибо, именно то, что нужно было
.
Enter нажат, к чему теперь рыданья…
ramzes, спасибо, но я не совсем понял, что писать в файл из твоего цикла.
.
ramzes
массив $new
но. все зависит от того в каком виде тебе надо записать.
я собирал массив в котором содержатся под-массивы с именем и должностью.
если тебе надо просто построчно собрать, то
$data = file('file.txt');
$new = [];
for($i=0; $i<count($data) /2; $i = $i+2){
    $new[] = $data[$i];
    $new[] = $data[$i+1];
}
 
print_r($new);

тогда так
.
Enter нажат, к чему теперь рыданья…
Всем спасибо, получилось скрипт завершить)
Всего: 7969