博客列表 >数组与字符串,变量之间的转换、数组的回调、for()循环来遍历关联数组-20180824

数组与字符串,变量之间的转换、数组的回调、for()循环来遍历关联数组-20180824

NiceLiving的博客
NiceLiving的博客原创
2018年09月14日 12:38:02672浏览

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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议