博客列表 >数组\字符串\回调处理\遍历数组—2018年8月27日19时15分

数组\字符串\回调处理\遍历数组—2018年8月27日19时15分

耗子的博客
耗子的博客原创
2018年08月28日 23:43:11780浏览

本课讲解了数组遍历及数组的常规操作,数组与变量字符串之间的转换,回调处理

实例数组与字符串,变量之间的转换

<meta charset="UTF-8">
<?php

echo "<h2 style='color: green'>一、数组与字符串变量之间的转换</h2>";

echo '<hr>';

//索引数组创建
echo "<h4>1.1 索引数组创建</h4>";

$info=array("小红","小明","小黄","小蓝","小黑");
$info=["小红","小明","小黄","小蓝","小黑"];
print_r($info);
echo '<br>';
print_r($info2);

//关联数组创建方式
echo "<h4>1.2 关联数组创建</h4>";
$info3=array("name"=>"小红","age"=>"18","sex"=>"女","add"=>"广东省东莞市");
$info4=["name"=>"小红","age"=>"18","sex"=>"女","add"=>"广东省东莞市"];
print_r($info3);
echo '<br>';
print_r($info4);


echo "<h4>1.3 list将数组转换为字符串,用着索引数组上</h4>";

//list把数组中的元素转换为变量;
list($name,$age,$sex,$add)=['小花','18','女','广东省广州市'];
echo '名称:',$name,'年龄:',$age,'性别:',$sex,'联系地址:',$add;



echo "<h4>1.4 extract将数组转换为变量,用在关联数组上</h4>";

$info5=extract($info3);//返回变量的数量
echo '共生成了:',$info5,'个变量.','我的名称是:', $name,',年龄:', $age,',性别:', $sex,',联系地址:', $add;//返回变量的数量



echo "<h4>1.5 compact将变量转换为数组</h4>";
$name='朱老师';
$age=18;
$sex='男';
$add='安徽合肥';
$arr=compact('name','age','sex','add');
echo var_export($arr);


echo "<h4>1.6 explode将字符串转换数组</h4>";
$info='手机,电脑,洗衣机,冰箱,显示器,办公桌';
echo var_export(explode(',',$info)).'<br>';  //将所有字符转换为数组

echo var_export(explode(',',$info,3)).'<br>';

echo var_export(explode(',',$info,-3)).'<br>';//-3代表在生成的数组中从尾部删除3个


echo "<h4>1.7 implode 将所数组拼接为字符串</h4>";
$head=['首 页','公司简介','公司业务','企业文化','加入我们','联系我们'];
echo var_export(implode($head)).'<br>';  //将所数组中值拼接为字符串
echo var_export(implode('   |',$head)).'<br>';//添加分割线
echo var_export('<a href="">'.implode('</a>  |<a href="">',$head).'</a>');

运行实例 »

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

实例数组元素的回调处理

<meta charset="UTF-8">
<?php
echo '<pre>';

echo "<h2 style='color: green'>二、数组元素的回调处理</h2>";
echo '<hr>';

//有参数
function add($a,$b,$c,$d,$e,$f){
return $a+$b+$c+$d+$e+$f;
}

//add(1,2,3,4,5,6);
echo add(1,2,3,4,5,6).'<br>';//参数为数值
echo '<br>';

function add1($a,$b,$c,$d,$e,$f){
    return $a.$b.$c.$d.$e.$f;
}

echo add1('www','.php','.cn','是','最好的PHP编程','学习网站').'<br>';//参数为字符串
echo '<br>';


echo '<h2>1  array_filter($arr,$cllback);用一个回调处理数组中的每个元素,仅返回true的元素,非常适合删除数组中的空元素</h2>';
//将一个函数作为参数进传递就是回调,回调使用  callable
//1.array_filter($arr,$cllback);用一个回调处理数组中的每个元素,仅返回true的元素,非常适合删除数组中的空元素



$arr1=[12,0,456,40,'php',false,true,'中文网'];
//echo count($arr1);//数组中元素的总数
echo '原始数组中,共有'.count($arr1).'个元素,'.var_export($arr1,true).'<br>';
echo '<br>';

$arr2=array_filter($arr1);

echo '过滤后数组中,共有'.count($arr2).'个元素,'.var_export($arr2,true).'<br>';//使用array_filter()函数,默认返回为true的元素
echo '<br>';




//常规标准函数
function hello(){
    return 'abc';
}
hello();


//匿名函数,当参数来使用
$hello=function (){
    return 'abc';
};
echo $hello(),'<br>';

echo '<br>';


//传入一个回调:匿名函数()
$arr3=['html','css','javascript','php'];
//使用回调删除css php

$arr4=array_filter($arr3,function ($value){
   return (($value !=='css') && ($value !=='php'));//返回不等于css 和php的元素
});

echo var_export($arr4).'<br>';


echo '<br>';
//2.array_walk($arr,$callback()) //对数组中每个元素的键和值进行处理
echo '<h2>2  array_walk($arr,$callback()) //对数组中每个元素的键和值进行处理</h2>';
$arr5=['name'=>'熊成浩','age'=>'30','sex'=>'男','add'=>'广东省广州市','email'=>'xiongchenghao@bonsaii.com'];

echo var_export($arr5).'<br>';

echo '<br>';
//格式化
array_walk($arr5,function ($val,$key){
    echo $key,'<a style="color:red">==</a>',$val,'<br>';
});

echo '<br>';
//回调的第三个参数的用法
array_walk($arr5,function ($value,$key,$name)
{
    //如果当前的用户名称是:熊成浩 , 则授权查看,否则拒绝
    if ($value != $name){
        die("您传入的用户名称是 $name ,无权限查看");
    } else {
        die($key.'=='.$value.'<br>');
    }
},'熊');

运行实例 »

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

实例用for()循环来遍历关联数组

<meta charset="UTF-8">
<?php

echo '<pre>';

echo "<h2 style='color: green'>三、用for()循环来遍历关联数组</h2>";
echo '<hr>';


$arr=['name'=>'熊成浩','age'=>'30','sex'=>'男','add'=>'广东省广州市','email'=>'xiongchenghao@bonsaii.com'];

var_export($arr);


echo '<hr>';

echo '<h2>2  使用for循环遍历关联数组</h2>';

for ($i=0;$i<count($arr);$i++)     //for 数组总数  count($arr)
{
    echo key($arr),'=>',current($arr),'<br/>';//获取当前元素的键和值key($arry) current($arr)
    next($arr); //下移指针
}

echo '<hr>';
echo '<h2>2  使用while循环遍历关联数组</h2>';
reset($arr);
while (list($key,$value)=each($arr)){
    echo $key.'---'.$value.'<br>';
}

运行实例 »

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


总结:

  1. 数组分为二类:索引数组,关联数组

  2. for while foreach的遍历

  3. reset() 复位指针  next() 下移指针  end() 移到最后 

  4. key(数组) 获取当前元素的键 current(数组) 获取当前元素的值

  5. print_r($arr, $bool)   var_dump($var1,$var2....)    var_export($arr,true),输出的就是字符串表示: 就是创建这个数组的php语句

  6. list() 把数组中的元素转为变量: 用在索引数组上 

  7. extract($arr, $flag): 关联数组转为变量

  8. compact(): 将变量转为关联数组

  9. explode():将字符串转换数组

  10. implode($glue, $arr); 将一维数组的值转化为字符串

  11. array_slice():从数组中指定位置,返回指定数量的元素

  12. array_chunk(): 将大数组分割为小数组

  13. array_pad(),将数组用指定的数组填充到指定的长度

  14. array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素

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

  16. array_merge():合并多个数组,相同键名互相覆盖

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