php - 字符串到数组的转换、array_rand、取消设置以及返回数组到字符串。有捷径吗?

标签 php mysql arrays string

我正在编写一个电话调用页面的时间表。我正在编写的一个函数在选定时间获取可用助手(另存为assistant_ids),随机选择一个助手,将其从列表中删除,然后更新表格。非常简单。

我已经为它编写了代码,它运行得很好,但是,该代码使用了很多函数来完成该过程。而且我感觉我正在用右脚去抓我的左耳!

是否有所有这些代码的快捷方式,将来可以为服务器节省大量处理?

$assistants = self::get_avail_assists($table, $this->time);
        //Assistants are saved as ids and each one is 18 Char.
        //each one separated with a space
        $assistants_no = strlen($assistants);
            if($assistants_no > 1){
                for($i=0; $i<$assistants_no; $i=$i+18){
                    $assistants_array[$i/18] = substr($assistants,$i,17);
                }
            }

        //select random assistant key
        $rand_assistant_key = array_rand($assistants_array);
        //retrieve selected assistant
        $rand_assistant = $assistants_array[$rand_assistant_key];
        //delete selected assistant from list
        unset($assistants_array[$rand_assistant_key]);

        //clear assistants string
        $assistants = "";
        //recreate assistants string to update
        foreach($assistants_array as $assistant){
            $assistants .= $assistant." ";
        }
        //update database after popping out the random assistant
        $sql = "UPDATE ".$table." SET ".
        "avail_assists='".$assistants."' ".
        "WHERE id='".$this->time."' ".
        "LIMIT 1";
        mysqli_query($sql,etc...

感谢您的宝贵时间!

最佳答案

假设助手重新输入数据库的顺序并不重要...

$ass_array=explode(" ",$assistants);  // space-separated string to array

shuffle($ass_array);    // mix it up
$lucky_ass=$ass_array[0];   // save one for whatever usage
unset($ass_array[0]);  // remove the one from the group

$leftover_string_of_asses=implode(' ',$ass_array);  // convert array to space-separated string

...add sql query

关于php - 字符串到数组的转换、array_rand、取消设置以及返回数组到字符串。有捷径吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42317198/

相关文章:

mysql - SQL 到 HQL 查询 Grails

c# - 如何检查字符串数组是否包含特定字符串?

arrays - iOS swift : fatal error: Index out of range

php - undefined variable : row

php - 将对象实例绑定(bind)到静态闭包

javascript - 使用按钮更新表格中的特定行

php - 在 Php 中下载 Gzip XML 文件

mysql - MySQL 中 MATCH ('...' IN NATURAL LANGUAGE MODE) 的最大可能取值范围是多少?

php - 仅在函数内部循环迭代一次

javascript - 在Javascript中打印出子数组的元素