Blogger Information
Blog 17
fans 0
comment 0
visits 10066
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组与字符串,变量之间的转换、数组的回调、for()循环来遍历关联数组-20180824
NiceLiving的博客
Original
680 people have browsed it

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

运行实例 »

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


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post