导航:首页 > 编程语言 > php序列化二维数组

php序列化二维数组

发布时间:2022-08-31 08:43:35

1. php 数组序列化

mixed unserialize ( string str [, string callback] )

unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。返回的是转换之后的值,可为 integer、float、string、array 或 object。如果传递的字符串不可解序列化,则返回 FALSE。

unserialize_callback_func 指令: 如果在解序列化的时候需要实例化一个未定义类,则可以设置回调函数以供调用(以免得到的是不完整的 object “__PHP_Incomplete_Class”)。可通过 php.ini、ini_set() 或 .htaccess 定义‘unserialize_callback_func’。每次实例化一个未定义类时它都会被调用。若要禁止这个特性,只需置空此设定。还需要注意的是 unserialize_callback_func 指令是从 PHP 4.2.0 开始提供使用的。

若被解序列化的变量是一个对象,在成功地重新构造对象之后,PHP 会自动地试图去调用 __wakeup() 成员函数(如果存在的话)。 例子 1. unserialize_callback_func 示例

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func 从 PHP 4.2.0 起可用
ini_set('unserialize_callback_func','mycallback'); // 设置您的回调函数

function mycallback($classname) {
// 只需包含含有类定义的文件
// $classname 指出需要的是哪一个类
}
?>

<?php
// 这里,我们使用 unserialize() 装载来自数据库的 $session_data 数组中的会话数据。
// 此例是描述 serialize() 的那个例子的补充。

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
// 如果执行出错或返回错误,则初始化为空数组
$session_data = array();
} else {
// 现在我们需要的是 $tmp[0] 中已序列化的数据。
$session_data = unserialize ($tmp[0]);
if (!is_array ($session_data)) {
// 出错,初始化为空数组
$session_data = array();
}
}
?>

2. php中二维数组如何使用

PHP还是比较常用的,于是我研究了一下PHP二维数组,在这里拿出来和大家分享一下,希望对大家有用使用PHP从数组中取出一段值可使用PHP内置函数array_slice(),但这个函数只支持一维数组,具体使用可查看PHP手册,array_slice函数并不支持二维数组,。首先了解一下array_slice函数:
arrayarray_slice(arrayarray,intoffset[,intlength[,boolpreserve_keys]])array_slice()
返回根据offset和length参数所指定的array数组中的一段序列。
实例:从一维数组中取出一段值
<?php$arrayarray=array('b','i','u','u','u');$result=array_slice($array,0,4);print_r($result);?>
实例从数组$array中取出四个值,起点数组下标0开始,结果如下:从一维数组取出一段值非常简单,直接使有内置函数array_slice。PHP二维数组的取值同样需要使用array_slice函数,实例二维数组数据如下:
$arrayarray=array();
$array[1]=array('1'=>'b1','2'=>'i1','3'=>'u1','4'=>'u1','5'=>'u1');
$array[2]=array('1'=>'b2','2'=>'i2','3'=>'u2','4'=>'u2','5'=>'u2');
$array[3]=array('1'=>'b3','2'=>'i3','3'=>'u3','4'=>'u3','5'=>'u3');
$array[4]=array('1'=>'b4','2'=>'i4','3'=>'u4','4'=>'u4','5'=>'u4');
$array[5]=array('1'=>'b5','2'=>'i5','3'=>'u5','4'=>'u5','5'=>'u5');
$array[6]=array('1'=>'b6','2'=>'i6','3'=>'u6','4'=>'u6','5'=>'u6');
$array[7]=array('1'=>'b7','2'=>'i7','3'=>'u7','4'=>'u7','5'=>'u7');
如上二维数组,如果需要取出其中某段,需要知道取段开始与结束在数组中的位置,考虑到应用的特殊性,只从第一个数组开始,在这个二维数组中取出需要的数组个数。方法如下:
functionarray_silice_func(array$array,$limit){$k=$count=0;$temp=array();foreach($arrayas$key=>$value){$countcount=count($value);if($count+$k>=$limit){$t=array_slice($value,0,$limit-$k);$temp[$key]=$t;break;}$temp[$key]=$value;$k+=$count;}return$temp;}

APC方法实现PHP上传多个文件原理剖析
新手必看PHP上传文件进度全面揭秘
经验之谈PHP数组函数总结
深入学习PHP数组函数使用方法
使用如下:print_r(array_silice_func($array,5))取出二维数组的5个值,结果如下:Array([1]=>Array([0]=>b1[1]=>i1[2]=>u1[3]=>u1[4]=>u1))依此类推,取出所需要的数组个数。由于PHP二维数组的使用局限性,这里没有实现从二维数组某个下标开始,取出多少个数组个数的需求,不过这也是值得探讨的地方。以上就关于如何使用PHP从二维数组中取出一段指定值,希望对大家有帮助。

3. PHP,怎么定义二维数组

<?php
$list=array
(
array("a",1,11),
array("b",2,12),
array("c",3,13),
array("d",4,14)
);
echo"name:".$list[0][0].":value1:".$list[0][1].",value11:".$list[0][2].".<br>";
echo"name:".$list[1][0].":value2:".$list[1][1].",value12:".$list[1][2].".<br>";
echo"name:".$list[2][0].":value3:".$list[2][1].",value13:".$list[2][2].".<br>";
echo"name:".$list[3][0].":value4:".$list[3][1].",value14:".$list[3][2].".<br>";
?>

4. php怎样定义二维数组

$obj
=
array(16=>16);
for($i=0;$i<16;$i++)
{
for($j=0;$j<16;$j++)
{
$obj[$i]=$j;
}
}
我想你的意思是这样
程序中的错误:
1.array使用方法错了.array();
2.$i和$j两个变量你在for里面写为'i','j'应该为'$i''$j'
3.$obj[i][j]=$k;这里也是基本变量定义出错,变量要加上$符号
4.$k未赋值...
5.还有...
同学多看看基础教材

5. 用php怎么处理成二维数组啊

<?php
$str = '{{2015-02-07,20},{2015-02-08,21},{2015-02-09,1},{2015-02-10,31}}';
$arr = explode('},{', trim($str, '{}'));

echo "<pre>";
print_r($arr);

function to_arr($v){
return explode(',', $v);
}
$arr = array_map('to_arr', $arr);

print_r($arr);
echo "</pre>";
exit;

6. php怎么操作才能把这个二维数组加进数据库里面

可以按照ly4885806的方法序列化成字符串插入数据库,不过这个只能插入一个字段不循环
如果你的数据是需要插入多个行和字段的话只能循环了
$Array=Array([0]=>Array([0]=>张三[1]=>70)[1]=>Array([0]=>李四[1]=>80)[2]=>Array([0]=>王五[1]=>90)
<?
$in_value_arr=array();
foreach($Arrayas$key=>$value){
foreach($valueas$k=>$v){
$in_value_arr[]="(**,**,**)";
}
$in_value='('.implode('),(',$in_value_arr).')';
$sql="INSERTINTOtbl_name(col1,col2)VALUES{$in_value};";
}
?>

7. php一维数组变二维数组

<?php

$a=array('a0'=>'0001','b0'=>'2','a1'=>'0003','b1'=>'6');
$array=change($a,1);
print_r($array);


functionchange($array,$num){
$b=array();
for($i=0;$i<=$num;$i++){
$array=array();
$array['id']=empty($a['a'.$i])?"":$a['a'.$i];
$array['num']=empty($a['b'.$i])?"":$a['b'.$i];
$b[]=$array;
}
return$b;
}

?>

基本实现了你所要的功能

8. php数组序列化a:1:{i:0;s:1:"1"} 的详细解释

1、首先创建好一个数组然后序列化,array("table" => member, "field" => 1,"rule" => -0 ,"cycle" => 24 ,"max" => 1 )。

阅读全文

与php序列化二维数组相关的资料

热点内容
hexophp 浏览:271
用什么app买东西半价 浏览:62
苹果下载的pdf文件怎么打开 浏览:211
如何在服务器上隐藏源站地址 浏览:645
单片机进制字母对应表 浏览:528
向某人下命令 浏览:627
编程中删除数组中的数 浏览:86
aes对称加密反编译 浏览:550
java编译成exe 浏览:190
gps处理算法 浏览:596
什么app可以和对象存钱 浏览:146
java字符串表达式计算 浏览:330
javacmd环境变量 浏览:51
电视上面找不到全民歌app怎么办 浏览:156
单片机中psw0 浏览:994
优酷视频加密么 浏览:763
本地连接dos命令 浏览:206
云服务器怎么上传金币房卡游戏 浏览:71
Python快递管理可视化 浏览:419
java正则验证数字 浏览:830