Blogger Information
Blog 22
fans 0
comment 0
visits 14879
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP中数组与字符串、变量之间的转换以及数组元素的回调处理;用for()循环来遍历关联数组。 2018-8-25 21:50
朝闻道的博客
Original
643 people have browsed it

代码实例如下:

实例

<?php
//数组与变量与字符串之间的转换
//1.list() 把数组中的元素转为变量: 用在索引数组上
list($name, $course, $grade) = ['唐舞林','php',88];
$name = '唐舞林';
$course = 'php';
$grade = 88;
echo $name, '的 "', $course, '"课程的成绩是: ', $grade, '<hr>';

//2. extract($arr, $flag): 关联数组转为变量
$arr1 = ['id'=>1, 'name'=>'叶凡','sex'=>'male','salary'=>8888];
//extract():返回变量的数量
echo '共生成了:',var_export(extract($arr1),true),'个变量:<br>';
$id=1; $name='叶凡'; $sex='male'; $salary=8888;
echo '我的id:',$id,',姓名:',$name,',性别:',$sex,',工资: ',$salary,'元<hr>';

//3.compact(): 将变量转为关联数组
$name = '钱学森';
$faction = '中国科学院';
$position = '院士';
$arr2 = compact('name','faction','position');
echo var_export($arr2,true),'<hr>';
echo '<pre>';
//4.explode():将字符串转换数组
$lang = 'html,css,javascript,jquery,php,mysql';
echo var_export(explode(',',$lang)),'<br>';
echo var_export(explode(',',$lang,3)),'<br>';
echo var_export(explode(',',$lang,-2)),'<hr>';//最常用

//5.implode($glue, $arr)
$arr3 = ['首页','公司新闻','公司新闻','联系我们'];
//echo var_export(implode($arr),true),'<br>';
echo var_export(implode('|',$arr3),true),'<br>';
//添加<a>转为导航
echo var_export('<a href="#">'.implode('</a>|<a href="#">',$arr3).'</a>'),'<br>';

运行实例 »

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

实例

<?php
/**
 * 数组的回调处理
 * 将一个函数做为参数进行传递
 * 1. array_filter($arr, $callback)
 * 2. array_walk($arr, $callback())
 */

//1. array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素
$arr1 = [5,0,'',20,null,88,false,'php'];
echo '<pre>';
echo '原始数组',var_export($arr1,true),',共有:',count($arr1),'个元素<hr>';
// ''空字符串,0,null,false: false
$arr2 = array_filter($arr1);
echo '新数组',var_export($arr2,true),',共有:',count($arr2),'个元素<hr>';
//非常适合删除数组中的空元素
//传入一个回调: 匿名函数
$arr3 = ['html','css','javascript'];
$arr4 =array_filter($arr3, function ($value){
    return $value !== 'css';
});
//echo var_export($arr4),'<hr>';

//2. array_walk():对数组中每个元素的键和值进行处理
$arr = ['name'=>'admin','email'=>'admin@php.cn'];
echo var_export($arr, true), '<hr>';
//格式化
array_walk($arr, function (&$value, $key) {
    echo $key,':',$value,'<br>';
});
echo '<hr>';
// 回调的第三个参数的用法

array_walk($arr, function (&$value, $key, $name) {
    //如果当前的用户名是:admin,则授权查看,否则拒绝
    if ($value != $name) {
        exit('无权查看');
    } else {
        exit($key.':'.$value);
    }

},'admin1');

运行实例 »

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

实例

<?php
$arts = ['泰坦之锤','器魂真身','定力之破','旋风狂舞','杀戮结界','千钧壁垒']; // 索引数组
$swordsman = ['name'=>'唐三','position'=>'海神','skill'=>'昊天锤魂技'];
//3. 数组的遍历
//for ()
$res1 = '';
for ($i=0; $i<count($arts); $i++) {
    $res1 .= $arts[$i].'---';
}
echo rtrim($res1,'---'),'<hr>';

//while()

$res2 = '';
$i=0;
while ( $i<count($arts)) {
    $res2 .= $arts[$i].'---';
    $i++;
}
echo rtrim($res2,'---'),'<hr>';
// do~while()
// foreach()
// $value 叫循环变量,每一次数组将要输出的当前的元素赋值给$value
foreach ($swordsman as $key=>$value) {
    echo '['.$key,'] => ',$value,'<br>';
}
echo '<hr>';

运行实例 »

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




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