php 库函数和经典算法持续收集中
2013-12-09 17:15
295 查看
1、数组查找
<?php
/**
*获取指定范围下标的数组
*@params $arr 原数组
*@params $start 开始下标
*@params $end 结束下标
*@return 返回指定下标范围的数组
*/
function getByKeyRang($arr, $start, $end){
$return_keys = range($start, $end); //生成数组
print_r($return_keys);
$return_keys = array_flip($return_keys); //反转数组
echo '<br>';
print_r($return_keys);
echo '<br>';
return array_intersect_key($arr, $return_keys); //数组比较获取前一数组的数值
}
//测试
$arr = array(1=>'sadas',20=>'aasd',5002=>'fghfg', 580=>'dfgdg', 190023=>'rty',248=>'kj',76=>'sddd',606=>'sddd', 505=>'dfgfdg');
var_dump(getByKeyRang($arr, 501, 599));
//输出
?>
2、页面更新,select控件设置初始选中状态;
<fieldset>
<?php echo "应用类型:"?>
<fieldset>
<select style="width: 30%; float: left; margin-right: 3%;"
name="parentType" id="parentType" onchange="childtype(this.value)">
<option value="" Selected><?php echo lang('v_man_pr_pleaseSelect') ?></option>
<?php if(isset($parenttype)):?>
<?php foreach($parenttype as $rel) {?>
<option value="<?php echo $rel['id']; ?>"><?php echo $rel['parent_name'];?></option>
<?php } endif;?>
</select>
<select style="width: 27%; float: left; margin-right: 3%;"
name="childType" id="childType" onchange="grandchildtype(this.value)">
<option value="" Selected><?php echo lang('v_man_pr_pleaseSelect') ?></option>
</select>
<select style="visibility:hidden" style="width: 27%; float: left; margin-right: 3%;"
name="grandchildType" id="grandchildType" >
<option value="" Selected><?php echo lang('v_man_pr_pleaseSelect') ?></option>
</select>
</fieldset>
</fieldset>
<script type="text/javascript">
////select控件设置初始选中状态
$(document).ready(function(){
document.getElementById("parentType").options[0].selected = "selected";
});
//////select控件联动
function clearSel(selectname){
while(selectname.childNodes.length>0){
selectname.removeChild(selectname.childNodes[0]);
}
}
function childtype(parenttype)
{
document.getElementById('grandchildType').style="visibility:hidden;width: 27%; float: left; margin-right: 3%;";
if(parenttype=="")
{
var chann=document.getElementById("childType").value;
var selectTag = document.getElementById("childType");
var colls = selectTag.options;
if((chann!="") || (colls.length>0))
{
clearSel(document.getElementById("childType"));
var value = "";
var text ="<?php echo lang('v_man_pr_pleaseSelect') ?>";
var channel = new Option(text,value);
document.getElementById('childType').options.add(channel);
return;
}
document.getElementById('msg').innerHTML = '<?php echo lang('v_man_pr_selectPlatform') ?>';
document.getElementById('msg').style.display="block";
return;
}
var data = {
parent:parenttype
};
jQuery
.ajax({
type : "post",
url : "<?php echo site_url()?>/plugin/huawei/huaweiactivate/uploadchildtype",
data : data,
success : function(msg) {
//alert(msg);
//document.getElementById('msg').innerHTML = "<?php echo lang('v_man_pr_selectChannel') ?>";
//document.getElementById('msg').style.display="block";
jsonData=eval("("+msg+")");
var selectTag = document.getElementById("childType");
var colls = selectTag.options;
if((colls.length>0) || (document.getElementById("childType").value!=""))
{
clearSel(document.getElementById("childType"));
}
//alert(jsonData);
{
var tempvalue = 0;
var temptext = "<?php echo lang('huawei_select_apptype') ?>";
var tempchannel = new Option(temptext,tempvalue);
document.getElementById('childType').options.add(tempchannel);
}
for(i = 0;i<jsonData.length;i++)
{
var value = jsonData[i]['child_id'];
var text = jsonData[i]['child_name'];
var channel = new Option(text,value);
document.getElementById('childType').options.add(channel);
}
},
error : function(XmlHttpRequest, textStatus, errorThrown) {
alert("<?php echo lang('t_error') ?>");
},
beforeSend : function() {
//document.getElementById('msg').innerHTML = '<?php echo lang('v_rpt_ve_waitLoad') ?>';
//document.getElementById('msg').style.display="block";
},
complete : function() {
}
});
}
function grandchildtype(childtype)
{
parent = document.getElementById('parentType').value;
//document.getElementById('type').style="visibility:visible;width: 27%; float: left; margin-right: 3%;";
if(childtype=="")
{
var chann=document.getElementById("grandchildType").value;
var selectTag = document.getElementById("grandchildType");
var colls = selectTag.options;
if((chann!="") || (colls.length>0))
{
clearSel(document.getElementById("grandchildType"));
var value = "";
var text ="<?php echo lang('huawei_select_apptype') ?>";
var channel = new Option(text,value);
document.getElementById('grandchildType').options.add(channel);
return;
}
document.getElementById('msg').innerHTML = '<?php echo lang('huawei_select_apptype') ?>';
document.getElementById('msg').style.display="block";
return;
}
var data = {
parent:parent,
child:childtype
};
jQuery
.ajax({
type : "post",
url : "<?php echo site_url()?>/plugin/huawei/huaweiactivate/uploadgrandchildtype",
data : data,
success : function(msg) {
//alert(msg);
//document.getElementById('msg').innerHTML = "<?php echo lang('huawei_select_apptype') ?>";
//document.getElementById('msg').style.display="block";
jsonData=eval("("+msg+")");
var selectTag = document.getElementById("grandchildType");
var colls = selectTag.options;
if((colls.length>0) || (document.getElementById("grandchildType").value!=""))
{
clearSel(document.getElementById("grandchildType"));
}
if(jsonData && jsonData.length>0)
{
document.getElementById('grandchildType').style="visibility:visible;width: 27%; float: left; margin-right: 3%;";
//alert(jsonData);
{
var tempvalue = 0;
var temptext = "<?php echo lang('huawei_select_apptype') ?>";
var tempchannel = new Option(temptext,tempvalue);
document.getElementById('grandchildType').options.add(tempchannel);
}
for(i = 0;i<jsonData.length;i++)
{
var value = jsonData[i]['grandchild_id'];
var text = jsonData[i]['grandchild_name'];
var channel = new Option(text,value);
document.getElementById('grandchildType').options.add(channel);
}
}
},
error : function(XmlHttpRequest, textStatus, errorThrown) {
alert("<?php echo lang('t_error') ?>");
},
beforeSend : function() {
//document.getElementById('msg').innerHTML = '<?php echo lang('v_rpt_ve_waitLoad') ?>';
//document.getElementById('msg').style.display="block";
},
complete : function() {
}
});
}
</script>
<?php
/**
*获取指定范围下标的数组
*@params $arr 原数组
*@params $start 开始下标
*@params $end 结束下标
*@return 返回指定下标范围的数组
*/
function getByKeyRang($arr, $start, $end){
$return_keys = range($start, $end); //生成数组
print_r($return_keys);
$return_keys = array_flip($return_keys); //反转数组
echo '<br>';
print_r($return_keys);
echo '<br>';
return array_intersect_key($arr, $return_keys); //数组比较获取前一数组的数值
}
//测试
$arr = array(1=>'sadas',20=>'aasd',5002=>'fghfg', 580=>'dfgdg', 190023=>'rty',248=>'kj',76=>'sddd',606=>'sddd', 505=>'dfgfdg');
var_dump(getByKeyRang($arr, 501, 599));
//输出
array (size=2) 580 => string 'dfgdg' (length=5) 505 => string 'dfgfdg' (length=6)
?>
2、页面更新,select控件设置初始选中状态;
<fieldset>
<?php echo "应用类型:"?>
<fieldset>
<select style="width: 30%; float: left; margin-right: 3%;"
name="parentType" id="parentType" onchange="childtype(this.value)">
<option value="" Selected><?php echo lang('v_man_pr_pleaseSelect') ?></option>
<?php if(isset($parenttype)):?>
<?php foreach($parenttype as $rel) {?>
<option value="<?php echo $rel['id']; ?>"><?php echo $rel['parent_name'];?></option>
<?php } endif;?>
</select>
<select style="width: 27%; float: left; margin-right: 3%;"
name="childType" id="childType" onchange="grandchildtype(this.value)">
<option value="" Selected><?php echo lang('v_man_pr_pleaseSelect') ?></option>
</select>
<select style="visibility:hidden" style="width: 27%; float: left; margin-right: 3%;"
name="grandchildType" id="grandchildType" >
<option value="" Selected><?php echo lang('v_man_pr_pleaseSelect') ?></option>
</select>
</fieldset>
</fieldset>
<script type="text/javascript">
////select控件设置初始选中状态
$(document).ready(function(){
document.getElementById("parentType").options[0].selected = "selected";
});
//////select控件联动
function clearSel(selectname){
while(selectname.childNodes.length>0){
selectname.removeChild(selectname.childNodes[0]);
}
}
function childtype(parenttype)
{
document.getElementById('grandchildType').style="visibility:hidden;width: 27%; float: left; margin-right: 3%;";
if(parenttype=="")
{
var chann=document.getElementById("childType").value;
var selectTag = document.getElementById("childType");
var colls = selectTag.options;
if((chann!="") || (colls.length>0))
{
clearSel(document.getElementById("childType"));
var value = "";
var text ="<?php echo lang('v_man_pr_pleaseSelect') ?>";
var channel = new Option(text,value);
document.getElementById('childType').options.add(channel);
return;
}
document.getElementById('msg').innerHTML = '<?php echo lang('v_man_pr_selectPlatform') ?>';
document.getElementById('msg').style.display="block";
return;
}
var data = {
parent:parenttype
};
jQuery
.ajax({
type : "post",
url : "<?php echo site_url()?>/plugin/huawei/huaweiactivate/uploadchildtype",
data : data,
success : function(msg) {
//alert(msg);
//document.getElementById('msg').innerHTML = "<?php echo lang('v_man_pr_selectChannel') ?>";
//document.getElementById('msg').style.display="block";
jsonData=eval("("+msg+")");
var selectTag = document.getElementById("childType");
var colls = selectTag.options;
if((colls.length>0) || (document.getElementById("childType").value!=""))
{
clearSel(document.getElementById("childType"));
}
//alert(jsonData);
{
var tempvalue = 0;
var temptext = "<?php echo lang('huawei_select_apptype') ?>";
var tempchannel = new Option(temptext,tempvalue);
document.getElementById('childType').options.add(tempchannel);
}
for(i = 0;i<jsonData.length;i++)
{
var value = jsonData[i]['child_id'];
var text = jsonData[i]['child_name'];
var channel = new Option(text,value);
document.getElementById('childType').options.add(channel);
}
},
error : function(XmlHttpRequest, textStatus, errorThrown) {
alert("<?php echo lang('t_error') ?>");
},
beforeSend : function() {
//document.getElementById('msg').innerHTML = '<?php echo lang('v_rpt_ve_waitLoad') ?>';
//document.getElementById('msg').style.display="block";
},
complete : function() {
}
});
}
function grandchildtype(childtype)
{
parent = document.getElementById('parentType').value;
//document.getElementById('type').style="visibility:visible;width: 27%; float: left; margin-right: 3%;";
if(childtype=="")
{
var chann=document.getElementById("grandchildType").value;
var selectTag = document.getElementById("grandchildType");
var colls = selectTag.options;
if((chann!="") || (colls.length>0))
{
clearSel(document.getElementById("grandchildType"));
var value = "";
var text ="<?php echo lang('huawei_select_apptype') ?>";
var channel = new Option(text,value);
document.getElementById('grandchildType').options.add(channel);
return;
}
document.getElementById('msg').innerHTML = '<?php echo lang('huawei_select_apptype') ?>';
document.getElementById('msg').style.display="block";
return;
}
var data = {
parent:parent,
child:childtype
};
jQuery
.ajax({
type : "post",
url : "<?php echo site_url()?>/plugin/huawei/huaweiactivate/uploadgrandchildtype",
data : data,
success : function(msg) {
//alert(msg);
//document.getElementById('msg').innerHTML = "<?php echo lang('huawei_select_apptype') ?>";
//document.getElementById('msg').style.display="block";
jsonData=eval("("+msg+")");
var selectTag = document.getElementById("grandchildType");
var colls = selectTag.options;
if((colls.length>0) || (document.getElementById("grandchildType").value!=""))
{
clearSel(document.getElementById("grandchildType"));
}
if(jsonData && jsonData.length>0)
{
document.getElementById('grandchildType').style="visibility:visible;width: 27%; float: left; margin-right: 3%;";
//alert(jsonData);
{
var tempvalue = 0;
var temptext = "<?php echo lang('huawei_select_apptype') ?>";
var tempchannel = new Option(temptext,tempvalue);
document.getElementById('grandchildType').options.add(tempchannel);
}
for(i = 0;i<jsonData.length;i++)
{
var value = jsonData[i]['grandchild_id'];
var text = jsonData[i]['grandchild_name'];
var channel = new Option(text,value);
document.getElementById('grandchildType').options.add(channel);
}
}
},
error : function(XmlHttpRequest, textStatus, errorThrown) {
alert("<?php echo lang('t_error') ?>");
},
beforeSend : function() {
//document.getElementById('msg').innerHTML = '<?php echo lang('v_rpt_ve_waitLoad') ?>';
//document.getElementById('msg').style.display="block";
},
complete : function() {
}
});
}
</script>