1、php中数组元素与字符串的转换在存储数据时经常使用到,而数组元素与变量之间的转换在调用函数时也会经常使用到,也是非常重要的,以下主要通过一些简单的实例,描述了他们之间是如何进行转换到的:
<?php
//数组与变量与字符串之间的转换
//1.list() 把数组中的元素转为变量: 用在索引数组上
list($name,$age,$sex) = ['小明','18','男'];
echo '姓名:'.$name.'<br>'.'性别:'.$sex.'<br>'.'年龄:'.$age.'<br>';
//2. extract($arr,$flag): 关联数组转为变量
$option = array(
'host' => 'localhost',
'user' => 'root',
'pass' => 1234,
'dbname' => 'php_3',
'port' => 3306,
'charset' => 'utf8'
);
//extract():返回变量的数量
echo '共生成了'.extract($option,true).'个变量,<br>';
echo '我的主机是:'.$host.',我的用户名叫:'.$user.',我的密码是:'.$pass.'<br>';
//3.compact(): 将变量转为关联数组
$name = '葫芦娃';
$age = 500;
$num = 7;
$arr = compact('name','age','num');
echo '<pre>',var_export($arr);
//4.explode():将字符串转换数组
$string = 'html,css,js,jquery,php,mysql';
echo var_export(explode(',',$string)),'<br>';
echo var_export(explode(',',$string,3)),'<br>';//从前开始分隔成三个
echo var_export(explode(',',$string,-2)),'<br>';//去掉最后两个
//5.implode($glue, $arr)//将数组转换成字符串
$arr = ['首页','导航','更多','反馈'];
echo var_export(implode($arr)),'<br>';
echo var_export(implode('|',$arr)),'<br>';
//添加<a>链接
echo var_export('<a href="#">'.implode('</a>|<a href="#">', $arr)).'</a>';
?>点击 "运行实例" 按钮查看在线实例
运行实例截图:
说明:以上主要介绍了如何使用list()函数把索引数组中的元素转换成变量的,通过extract()函数把关联数组转换为变量;
compact(): 将变量转为关联数组;explode():将字符串转换数组;implode($glue, $arr):将数组转换成字符串。
2、以下代码主要介绍了数组元素的回调处理:
<?php
// 数组元素的回调处理
// 将一个函数作为参数进行传递
// 1、array_filter($arr,$callback)
// 2、array_walk($arr,$callback)
//1. array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素
$arr1 = ['A',0,2,'',4,NULL,'C',false];
echo '<pre>';
echo var_export($arr1).'<br>','共有:'.count($arr1).'个元素'.'<br>';
//0,空字符串,NULL,false都为fasle
$arr2 = array_filter($arr1);//此函数适合删除数组中的空元素
echo '新的数组:<br>',var_export($arr2),',共有:',count($arr2),'个元素<br>';
//传入一个回调函数:匿名函数
$arr3 = ['html','css','php'];
$arr4 = array_filter($arr3,function ($v){
return $v!== 'css';
});
echo var_export($arr4),'<br>';
//2. array_walk():对关联数组中每个元素的键和值进行处理
$arr5 = ['host' =>'localhost','user'=>'root','pass'=>1234];
echo var_export($arr5).'<br>';
//对数组进行格式化
array_walk($arr5, function($v,$k){
echo $k.':'.$v,'<br>';
});
echo '<br>';
//回调函数的第三个参数的用法
array_walk($arr5, function ($v,$k,$host){
//如果当前用户地址是:loaclhost,则授权登录,否则拒绝
if($v != $host){
exit('无权登录');
}else{
exit($k.':'.$v);
}
},'localhost');
?>点击 "运行实例" 按钮查看在线实例
运行效果截图:

说明:回调函数就是通过 array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素,通过array_walk():对关联数组中每个元素的键和值进行处理;其中回调函数的第三个参数的用法可以起到限制权限的作用。
3、以下代码实现了使用for循环遍历一个关联的数组:
<?php
//for 循环遍历一个关联的数组
$option = array(
'host' => 'localhost',
'user' => 'root',
'pass' => 1234,
'dbname' => 'php_3',
'port' => 3306,
'charset' => 'utf8'
);
for($i=0;$i<count($option);$i++){
echo key($option)." ". ' => '." ".current($option).'<br>';
next($option);
}
?>点击 "运行实例" 按钮查看在线实例
运行效果截图:

说明:for循环遍历数组,关键是在于如何一项一项的取出数组中每个键和对应的每个值,此处用到了数组中指针的操作,每次循环指针往后移动一个位置,知道遍历完成。
总结:
(1)数组与变量与字符串之间的转换主要介绍了一下几种方法:
1.list() 把数组中的元素转为变量: 用在索引数组上
2. extract($arr,$flag): 关联数组转为变量
3.compact(): 将变量转为关联数组
4.explode():将字符串转换数组
5.implode($glue, $arr) :将数组转换成字符串
(2)数组元素的回调处理,主要使用到了一下两个关键的函数:array_filter($arr,$callback)和array_walk($arr,$callback),其中array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素,此函数适合删除数组中的空元素;array_walk():对关联数组中每个元素的键和值进行处理,第三个参数可以实现添加权限的功能。
(3)for循环遍历关联数组是对数组中键值的操作的一个总结,灵活运用所学到的知识,达到活学活用的效果。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号