Php 创建间隔插入加权项的数组
我正在开发一个用于客户大厅的留言板 “rundown”是从PHP创建的JSON,每5分钟通过AJAX调用检查更新。从包含该项、其持续时间以及开始和停止时间的MySQL数据库中填充详细信息。JQuery遍历内容,然后循环到数据的开头。当前列表中没有重复的项目 已请求权重系统,以便在出现重要项目($$$客户、员工会议等)时,它在列表中出现的频率更高(而不是在循环出现之前仅出现一次) 我已向数据库中添加了一个权重列,但在我的最终阵列构建中,我很难确定如何实现它:Php 创建间隔插入加权项的数组,php,jquery,Php,Jquery,我正在开发一个用于客户大厅的留言板 “rundown”是从PHP创建的JSON,每5分钟通过AJAX调用检查更新。从包含该项、其持续时间以及开始和停止时间的MySQL数据库中填充详细信息。JQuery遍历内容,然后循环到数据的开头。当前列表中没有重复的项目 已请求权重系统,以便在出现重要项目($$$客户、员工会议等)时,它在列表中出现的频率更高(而不是在循环出现之前仅出现一次) 我已向数据库中添加了一个权重列,但在我的最终阵列构建中,我很难确定如何实现它: $i = 0; foreach ($r
$i = 0;
foreach ($rundown_standard as $item) {
$return[$i]["playlist_id"] = $i;
$return[$i]["item_id"] = $item["id"];
$return[$i]["weight"] = $item["weight"];
$return[$i]["duration"] = $item["duration"];
$return[$i]["template"] = $item["template"];
$return[$i]["headline"] = htmlentities($item["headline"]);
$content = $helper->isJson($item["content"]);
if ($content) {
$return[$i]["content"] = $content;
} else {
$return[$i]["content"] = str_replace(array('{images_path_absolute}', '{images_path_relative}'), array(IMAGES_PATH_ABSOLUTE, IMAGES_PATH_RELATIVE), $item["content"]);
}
i++;
}
$return
是我发送给调用此函数的函数的格式化数据
默认权重为0
,这意味着它只应按添加到数组中的顺序显示一次,权重为90
的内容应每隔一项显示一次
我尝试设置另一个计数器变量,然后插入项目并重置计数器,这只适用于一个加权项目,但不适用于多个加权项目
清澈如泥
谢谢你的建议
编辑17:45:JavaScript只是动态更新页面;遍历JSON并将下一项追加到列表中:
if (window.item_content[i].template == "1") {
return '<div class="featured-item" id="featured-item-'+window.item_content[i].playlist_id+'"><img src="'+window.item_content[i].content+'" /></div>';
}
if(window.item\u content[i].模板==“1”){
返回“”;
}
这就是我的问题所在的数组,如果有多个元素要插入,我应该如何以指定的间隔插入元素。听起来你知道如何编码,只需要一个算法,所以我将为你提供一些伪代码。如果您需要我将其转换为更好的代码,我可以这样做
返回
和高优先级
return
不关心重量,而highPriority
会关心重量return
中,将所有其他权重放入highPriority
highPriority
highPriority
中的每个项目,计算结果很简单,但来自一个典型的“规格化和缩放”操作:规格化权重(n=weight/90
),然后将其缩放到数组的大小(n*=return.length
),以找到要添加到数组中的项目数。然后,要找到在return
数组中分配项目所需的空间,可以执行return.length/n
。不过,这可以简单地归结为90/重量
var步骤=90/项重量代码>
(变量i=0;i)的