项目中经常会用到获取多维数组某个特定键的所有值,经常的做法是循环获取,今天在网上看到一个不用循环获取的办法,如下
function array_get_by_key(array $array, $string){
if (!trim($string)) return false;
preg_match_all("/"$string";\w{1}:(:\d+:|)();/", serialize($array), $res);
return $res[1];
}
$r = array('id'=> 1, 's'=> 23, 'a' => array('s' => 123, array(1, 2, 's' => "asdasdgsadggsadg")));
echo '<pre>';
print_r (array_get_by_key($r, 's'));
把数组转换成字符串后再存入数据库
参考函数:
implode() ---把数组转换成字符串
explode() ---把字符串转换成数组
手册里有详细说明
序列化以后存储
对于一维数组可以简单的用
implode
explode
函数做数组——串的变换,但需注意分隔符要使用数组中不存在的字符
对于多维数组可以用序列化函数处理
serialize
unserialize
函数的用法手册中都有
您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部
获取一维数组:
count()和sizeof() 都可以直接统计一维数组长度。示例如下:
$arr = Array('0','1','2','3','4','5','6','7','8','9'); echo count($arr); // 输出10
$arr = array('苹果','香蕉','桔子','西瓜','梨','葡萄'); echo sizeof($arr); // 输出6
获取二维数组长度:
count()函数有两个参数:
count($arr,COUNT_NORMAL); //默认,不检测多维数组
count($arr,COUNT_RECURSIVE); //检测多维数组
例子:
$arr = array(
0=>array('name'=>'kong','age'=>'18'),
1=>array('name'=>'liang','age'=>'30')
);
count($arr) = 2;
count($arr,COUNT_RECURSIVE) = 6;非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
以上就是关于index of 怎样索取多维数组全部的内容,包括:index of 怎样索取多维数组、mysql数据库 怎么得到序列化数组的长度、php中统计数组的长度是那个函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)