Blogger Information
Blog 15
fans 0
comment 0
visits 12420
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组与字符串,变量之间的转换,数组元素回调处理for循环遍历关联数组 20180824课后作业
一点蓝的博客
Original
649 people have browsed it

本次作业涉及数组函数、语法结构较多,在数组与字符串与变量的转换,数组元素的回调处理上都很重要,有将数组中元素的键值转为变量和赋值的也有将变量和字符串

转为数组的,还有灵活使用for循环结合一些常用函数来遍历关联数组的,具体应用方法见实例

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

<?php
/**
 * Created by PhpStorm.
 * User: suyh93
 * Date: 2018/8/27
 * Time: 14:25
*/
echo '<h3>数组与字符串与变量间的转换</h3>';
echo '<hr><h6>将索引数组中的元素转为变量用: list(赋值变量名) = 索引数组</h6>';
list($company,$products,$money) = ['suyh一点蓝','电脑','3000'];//将数组中元素值赋值给对应变量
echo '今天买了一台',$company,'的',$products,'花了',$money,'<br>';
echo '<hr><h6>将关联数组中的键值转为变量和对应字符串,用:extract(关联数组),返回值为变量数量</h6>';
$company1 = ['time' => 2018, 'name' => 'suyh一点蓝', 'number' => 99];
echo '返回变量的数量为',var_export(extract($company1),true),',测试输出:<br>';
echo '$time = ',$time,'<br>$name = ',$name,'<br>$number = ',$number,'<br>';
echo '<hr><h6>将变量转为关联数组,用:compact(变量名)</h6>';
$ename = 'suyh';
$money = 1000;
$age = 25;
$weight = '60kg';
$user = compact('ename','money','age','weight');
echo '<pre>',var_export($user,true);
echo '<hr><h6>将字符串转为索引数组,用:explode(变量名,限制数组长度和保留字符串数量)</h6>';
$user ='ename,money,age,weight';
echo '<pre>',var_export(explode(',',$user),true),'全部转为值<br>';
echo '<pre>',var_export(explode(',',$user,3),true),'或限制数组长度为3但保留全部字符串<br>';
echo '<pre>',var_export(explode(',',$user,-1),true),'或限制数组长度3且只保留3个字符串<br>';
echo '<hr><h6>将索引数组中的值转为字符串,用:implode(粘合字符串的元素,索引数组)</h6>';
$company2 = ['首页','新闻资讯','产品案例','关于我们','人才招聘'];
echo '打印效果:',var_export(implode('|',$company2),true),'<br>';
echo '转为导航链接:','<a href="#">',var_export(implode('</a>|<a href="#">',$company2),true),'</a>';
echo '<hr><h6>非作业内容:熟悉从数组中指定位置返回指定数量的元素,用array_splice(数组,设定位置,指定长度)</h6>';
$num = range(10,100,10);//创建数组
echo print_r($num,true);
echo '<pre>',var_export(array_splice($num,6,3),true),'<br>';

echo '<hr><h6>将大数组分割为小数组,用array_chunk(数组,分割宽度)</h6>';
$num2 = range(1,10,1);
echo '原数组',print_r($num2,true),'<br>';
echo '切割后',var_export(array_chunk($num2,5),true);
echo '<hr><h6>将数组用指定的数组或元素填充到指定的长度,用array_pad(原数组,元素长度,指定填充参数值)</h6>';
$num3 = [10,20,30];
echo '指定元素长度为6,填充参数为666:<br>',var_export(array_pad($num3,6,666),true),'<br>';

运行实例 »

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

本地查看截图:

0824011.jpg0824012.jpg0824013.jpg

数组元素回调处理作业实例

<?php
/**
 * Created by PhpStorm.
 * User: suyh93
 * Date: 2018/8/27
 * Time: 16:15
 */
echo '<h3>数组元素的回调处理</h3>';
echo '<hr><h6>回调处理数组中的每个元素的值,仅返回结果为true的元素,过滤非true元素,语法:array_filter(数组)</h6>';
$num = [666,'',false,true,null,888,'suyh93','好好学习天天向上'];
$num1 = array_filter($num);
echo '查看仅输出显示为true的数组:<pre>',var_export($num1,true);
echo '<hr><h6>处理数组中每个元素的键值,语法:array_walk(数组,函数(匿名),第三个参数(可用))</h6>';
$user = ['name'=>'suyh93','age'=>'25','weight'=>'60kg','money'=> 3000];//创建一个关联数组
echo var_export($user,true),'<br>';//查看
echo '格式化处理:<br>';
array_walk($user,function($value,$key){
    echo $key,':',$value,'<br>';
});
echo '<br><h6>第三个参数使用方法示例</h6>';
array_walk($user,function($value,$key,$name){
    if($value != $name){
       // exit('不是本人无权查看');
    }else{
       // exit($key.':'.$value.'<br>');
    }
},'suyh93');
//由于上面的array_walk()第三个参数回调退出,以下内容均不显示,如需查看显示,需注释以上内容;
echo '<hr><h6>参数去重复,语法:array_unique(数组)</h6>';
echo var_export(array_unique([11,11,1,3,33,33,2,88,2,77,77,77]),true);
echo '<hr><h6>填充元素,语法:array_fill()</h6>';
echo '索引从5开始值为2元素数量为5个',var_export(array_fill(5,5,2));
echo '<hr><h6>随机选择指定数量的元素,语法:array_rand()</h6>';
echo '随机10个元素:',var_export(array_rand(range(1,66),10));
echo '<hr><h6>刷新数组,元素不变,位置随机,语法:shuffle()</h6>';
$num2 = ['suyh','php中文网','90kg','100kg',1000];
shuffle($num2);//刷新
echo var_export($num2);//输出
echo '<hr><h6>数组合并,相同键名覆盖,语法:array_merge(数组1,数组2)</h6>';
$num3 = ['user'=>'suyh','pwd'=>'666666','mobile'=>'18888888888'];
$num4 = ['user'=>'admin','pwd'=>'129809','address'=>'HK'];
$num5 = array_merge($num3,$num4);
echo var_export($num5);

运行实例 »

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

本地查看截图:

0824021.jpg

0824022.jpg

for循环遍历关联数组作业实例

<?php
/**
 * Created by PhpStorm.
 * User: suyh93
 * Date: 2018/8/27
 * Time: 17:36
 */
echo '<h3>for循环遍历关联数组</h3>';
$company = ['name' => 'suyh一点蓝','number' => '58人','time' => '2018','capital' => '1000000元人民币'];//创建关联数组
$c = count($company);
echo '查看元素数量',$c,'<br>';
$a1 = array_keys($company);
echo '<br>以索引方式返回由键组成的数组:<br><pre>',var_export($a1);
$a2 = array_values($company);
echo '<br>以索引方式返回由值组成的数组:<br><br><pre>',var_export($a2),'<br><hr><h6>通过索引值来实现for循环遍历关联数组</h6>';
for($i = 0;$i < $c;$i++){
    echo $a1[$i],'=>',$a2[$i],'<br>';
}

运行实例 »

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

本地截图:

082403.jpg

总结:

1将索引数组中的元素值赋值给变量可以用list(变量名)=[元素值];将关联数组转为变量用extract($array,$flag)(返回值为变量的数量);将变量转为关联数组用compact();explode()j将字符串转为数组;implode()将索引数组转为字符串;指定位置返回指定元素数量用array_splice(数组,设定位置,长度);还有array_chunk(数组,分割宽度)将大数组分割为小数组;将数组用指定的数组或元素填充到指定的长度,用array_pad(原数组,元素长度,指定填充参数值)
2关于数组回调处理,常见语法有:array_filter()处理每个元素的值,返回结果仅为true的元素,多用于删除数组中的空元素;array_walk()处理每个元素的键与值,作业中用到处理格式化能够理解,但用到的第三个参数用法理解很模糊,这里老师的讲解逻辑也有些不清楚,重看也还是理解不透...

3for循环遍历关联数组,我先将关联数组中的键与值单独拿出来重组为两个索引数组,再通过count()来作为遍历条件来完成

4需要记住的语法很多,很仔细的都过了两遍,动手更容易理解,担心后面会忘掉,所以周末自己有手抄笔记,希望能跟上老师的节奏,近两次作业都没能及时完成,希望每天能理解课堂内容并按时完成作业

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