博客列表 >数组与字符串及变量之间的转换和数组元素的回调处理以及最后使用for循环遍历关联数组的实例--2018年8月27日17时46分

数组与字符串及变量之间的转换和数组元素的回调处理以及最后使用for循环遍历关联数组的实例--2018年8月27日17时46分

coolperJie
coolperJie原创
2018年08月27日 18:22:40758浏览

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>';

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行实例截图:

demo1.png 

说明:以上主要介绍了如何使用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');

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果截图:

demo2.png

说明:回调函数就是通过 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);
}

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果截图:

demo3.png

说明: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循环遍历关联数组是对数组中键值的操作的一个总结,灵活运用所学到的知识,达到活学活用的效果。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议