Blogger Information
Blog 21
fans 0
comment 0
visits 18662
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组\字符串\回调处理\遍历数组—2018年8月27日19时15分
耗子的博客
Original
781 people have browsed it

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

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

<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():合并多个数组,相同键名互相覆盖

Correction status:Uncorrected

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