博主信息
博文 17
粉丝 0
评论 0
访问量 12483
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
数组与字符串,变量之间的转换、数组的回调、for()循环来遍历关联数组-20180824
NiceLiving的博客
原创
841人浏览过

1、for()循环遍历

实例

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018-08-27
 * Time: 15:53
 */
echo '<h2>数组的分类创建与遍历</h2>';
//1、数组分类:索引数组、关联数组
$arts=['亢龙有悔','飞龙在天','见龙卸甲','鸿渐于陆','潜龙勿用','突如其来'];//索引数组
//索引从0开始计数
echo $arts[0].'<br>';
echo $arts[1].'<br>';
echo $arts[2].'<br>';
echo $arts[5].'<br>';
//关联数组
$swordsman=['name'=>'郭靖','postition'=>'金刀驸马','skill'=>'降龙十八掌'];
//访问通过键名
echo $swordsman['name'];//键名是字符串
echo $swordsman['skill'];//键名是字符串

//2、数组定义
//整体创建(数组中可以支持任何类型(变量、数组))
//$a='见龙卸甲';
//$b=['亢龙有悔','飞龙在天','见龙卸甲'];
//$arts=[$a,$b,'鸿渐于陆','潜龙勿用','突如其来'];//索引数组
//echo '<pre>',print_r($arts);

//逐个创建
$swordsman=[];//声明一个空数组 (最好先这样)
$swordsman['name']='犇犇'; //通过追加的方式添加到声明的数组中
$swordsman['postition']='少爷';
$swordsman['skill']='大笑';
echo '<pre>',print_r($swordsman,1);

//数组的遍历
//for()循环遍历
echo '<hr>';
$res='';//定义一个变量存放遍历值
for($i=0;$i<count($arts);$i++)//count()函数求 某个数组的个数
{
    $res.=$arts[$i].'--';//输出的每个值存放在定义变量中
}
echo rtrim($res,'--');//删除最后的‘--’

//while()循环遍历
echo '<hr>';
$res2='';//定义一个变量存放遍历值
$i=0;
while($i<count($arts))//count()函数求 某个数组的个数
{
    $res2.=$arts[$i].'--';//输出的每个值存放在定义变量中
    $i++;
}
echo rtrim($res2,'--');//删除最后的‘--’

//do-while()循环遍历
echo '<hr>';
$res3='';//定义一个变量存放遍历值
$i=0;
//先运行,在判断(至少输出一次)
do{
    $res3.=$arts[$i].'--';//输出的每个值存放在定义变量中
    $i++;
}while($i<count($arts));//count()函数求 某个数组的个数

echo rtrim($res3,'--');//删除最后的‘--’
echo'<hr>';
//foreach()循环遍历
$bb=[];//声明一个空数组 (最好先这样)
$bb['name']='犇犇'; //通过追加的方式添加到声明的数组中
$bb['postition']='少爷';
$bb['skill']='大笑';
//$value 叫循环变量,每一次数组将要输出的元素赋值给$value
foreach($bb as $key=>$value){
    echo '<pre>','['.$key.']=>',$value;
}
//list()和each()
echo'<hr>';
while(list($key,$value) = each($bb)){
    echo '<pre>','['.$key.']=>',$value;
}
echo '<pre>';
//数组的内部指针
reset($bb);//将指针复位,指向第一个元素
//获取当前元素的键名和值名
echo key($bb).'-----'.current($bb).'<br>';
//指针下移:next()
next($bb);
echo key($bb).'-----'.current($bb).'<br>';
//end()最后一个数值
end($bb);
echo key($bb).'-----'.current($bb).'<br>';
reset($bb);//指针复位
echo key($bb).'===='.current($bb);

运行实例 »

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

2、 数组与字符串,变量之间的转换

实例

<?php 

//数组与变量与字符串之间的转变
//1.list(变量名,。。。)把数组中的元素转为变量
list($name,$cource,$grade)=['小龙女','php',90];
//相当于下边的赋值
// $name='小龙女';
// $cource='php';
// $grade=90;

echo $name,'的',$cource,'分数是',$grade,'<hr>';

//2、extract($arr,$flag);关联数组转为变量

$arr1=['name'=>'ben','sex'=>'baby','age'=>1,'salary'=>-800];
echo  '共输出了:'.var_export(extract($arr1)).'个变量'.'<hr>' ;//返回变量的数量
//相当于
//$name='ben';$sex='baby';$age=1;$salary=-800;
echo '我的姓名:'.$name.',性别是:'.$sex.',年龄:'.$age.'岁,工资是:'.$salary.'<hr>';

//3、compact(); 将变量转为关联数组

$name='渣渣辉';
$faction='天机城';
$postion='城主';
$salary=10000;
$arr2=compact('name','faction','postion','salary');

echo var_export($arr2).'<hr>';
echo'<pre>';

//4、explode();将字符串转换为数组
$lang = 'php,css,java,andriod,ios,html';

$arr3 = explode(',',$lang);
var_export($arr3);
//最后添加的数值就是将该字符串分割成几个变量,最后一个变量的值是后边所有
$arr3 = explode(',',$lang,3);
var_export($arr3);
//如果值是负数,就是从尾部值得大小进行删除,打印不显示
$arr3 = explode(',',$lang,-2);
var_export($arr3);
echo '<hr>';
//5、 implode($glue,$arr)

$arr = ['首页','公司新闻','公司信息','联系我们'];
echo var_export(implode($arr),true),'<br>';
echo var_export(implode('|',$arr),true),'<br>';
//添加a标签转为导航
echo var_export('<a herf="#">'.implode('</a>|<a herf="#">',$arr).'</a>'),'<br>';

运行实例 »

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

3、数组元素的回调处理

实例

<?php 
/*数组的回调处理

 *函数有参数,参数的类型:数值、字符串、数组、函数
 *将一个函数作为参数进行传递 叫做回调

 * 1、array_filter($arr,$callback)
 * 2、array_walk($arr,$callback())

*/
//1、array_filter(): 回调处理数组中的每一个元素,仅返回结果为true的元素

$arr = [4,6,'',20,null,99,false,true,'php'];

echo '<pre>';
echo '原始数组:',var_export($arr),'共有:',count($arr),'个数据<br>';
// ''、null、false  返回false
// 非常适合删除数组中的空元素
$arr1 = array_filter($arr);
echo '现数组:',var_export($arr1),'共有:',count($arr1),'个数据<hr>';

//匿名函数 创建( 属于一次性函数,非常适合当参数使用)
$a = function (){
	return '';
};
// 匿名函数调用
$a();

$arr2 = ['php','css','javascript'];
$arr3 = array_filter($arr2,function($value){
	return $value !=='css';
});
echo var_export($arr3),'<hr>';


//2.array_walk() 对数组中每个元素的键和值进行处理

$arr4 = ['name'=>'ben','sex'=>'baby'];
echo var_export($arr4,true),'<hr>';

//格式化输出
//函数中先获取值,再获取键
array_walk($arr4,function($value,$key){
	echo '<h2 style="color:red">'.$key,':',$value,'</h2>','<br>';
});

//回调的第三个参数的用法,作为条件值
array_walk($arr4,function($value,$key,$name){
	if($value !=$name){
		exit('无权查看');
	}else{
		exit($key.':'.$value.'<br>');
	}
},'ben');

运行实例 »

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


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学