• Отправка формы и разделение на массив данные из формы?

    Примерное решение твоей задачи + следующие шаги для самостоятельного решения

    1. Нужно указать название таблицы, где хранятся пользователи и их балансы.
    2. Нужно заменить название столбца с именем пользователей.
    3. Нужно заменить название столбца с балансом пользователей.
    4. Желательно, собрать групповой SQL запрос, чтобы разом обновить несколько данных в MySQL.
    5. Желательно, использовать PDO (подготовленные SQL запросы)
    6. Желательно, делать проверку на существование пользователя. Если его нет, то создавать нового и начислять баланс.

    // Получаем строку
    	$str = 'Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;';
    
    	// Удаляем все пробелы из строки
    	$str = str_replace(' ', '', $str);
    
    	// Разделяем пользователей
    	$users = explode(';', $str);
    
    	// Проходимся по всем пользователям
    	foreach ($users as $userIndex => $user){
    		// Разделяем данные пользователя
    		$userData = explode('-', $user);
    		
    		$userName = $userData[0]; // имя
    		$userAmount = $userData[1]; // сумма
    
    		// Собираем одиночный SQL запрос
    		$sql = 'UPDATE users SET balance = balance + ' . $userAmount . ' WHERE user_name = ' . $userName;
    
    		// Выполняем запрос к базе данных
    		$mysqli->query( $sql );
    	}
    Ответ написан
    2 комментария
  • Как рандомно вывести строки из текстового файла по определенному ключу?

    twobomb
    @twobomb
    $rows= file_get_contents("ваш файл.txt");
    $rows = mb_split("\r\n",$rows);
    $rows= array_values(array_filter($rows,function($e){return mb_split("\|",$e)[1] == "busfor";}));
    
    $onlyUnique = true;//доставать только уникальные
    $result = [];
    for($i = 0; $i < 7 && count($rows) > 0;$i++){	
    	$inx =rand(0,count($rows)-1);
    	$result[] = $rows[$inx];
    	if($onlyUnique)
    		array_splice($rows,$inx,1);
    }
    var_dump($result);
    Ответ написан
    2 комментария
  • Как рандомно вывести строки из текстового файла по определенному ключу?

    @Dark_Dante
    Как то так
    $elementQuantity = 7;
    $searchString = 'busfor';
    $fileName = 'filename'; //путь до файла
    
    $filteredArray = array_filter( //возвращает массив, содержащий только строки с вхождением подстроки
        file($fileName), //читаем файл в массив построчно,
        fn (string $str): bool => str_contains($str, $searchString ),//фильтруем массив, оставляя только строки с искомым словом
    );
    
    shuffle($filteredArray); //перемешаем массив
    
    $result = array_slice($filteredArray, 0, $elementQuantity);
    Ответ написан
    Комментировать
  • Как создать json массив, с еще одним массивом?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Следеющий PHP массив конвертится в нужный Вам JSON:
    <?php
    $json = [
    	[
    		["id"=>1,
    		 "login"=>'Admin'
    		], 
    		null, 
    		null, 
    		null, 
    		null, 
    		null
    	],
    	'route' => true,
    	'spectators' => null
    ];
    
    echo json_encode($json);


    Проверить PHP код здесь
    Ответ написан
    2 комментария