博客列表 >数组转换_回调处理_遍历数组-2018年8月24日

数组转换_回调处理_遍历数组-2018年8月24日

宋超的博客
宋超的博客原创
2018年08月27日 15:50:58697浏览

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

<?php
/**
//数组与变量与字符串之间的转换
//1.list() 把数组中的元素转为变量: 用在索引数组上
 */
list($a,$b,$c)=[1,'cc',8.8];
echo '<pre>';
var_dump($a);
var_dump($b);
echo var_dump($c),'<hr>';

//2. extract($arr, $flag): 关联数组转为变量
$book=['name'=>'php','price'=>88,'role'=>'学习PHP','crowd'=>'everyone'];
print_r($book );
//extract():返回变量的数量
echo '共生成了:',var_export(extract($book),true),'个变量:<br> 分别是',"\$name={$name}|\$price={$price}|\$price={$role}";

//3.compact(): 将变量转为关联数组
$bname='PHP开发';
$bprice=55;
$bcrowd='喜欢PHP';
$brole='学习PHP的书籍';
$barr=compact(bname,bprice,bcrowd,brole);
echo '<hr>',var_export($barr,true),'<hr>';

//4.explode():将字符串转换数组,第一个参数分隔符,第二个数组,第三个分隔数量负数时从结尾向前删除
$cbook='php,88,学习PHP,html,css';
$carr=explode(',',$cbook);
//echo var_export($carr);
echo var_export(explode(',',$cbook,5)),'<br>';
echo var_export(explode(',',$cbook,-1)),'<br>';

//5.implode($glue, $arr) 把数组元素组合为字符串:
$arr = ['首页','公司新闻','公司新闻','联系我们'];
$aac=implode('|',$arr);
echo print_r($aac,true),'<hr>';
echo '<pre>';
echo var_export('<a href="#">'.implode('</a>|<a href="#">',$arr).'</a>'),'<br><hr>';

$arr2=['php','css','javascript','html','mysql'];
echo var_export('<a href="#">'.implode('</a>|<a href="#1">',$arr2).'</a>');

运行实例 »

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

2.数组元素的回调处理实例

<?php
/**
 * 数组元素的回调处理
 * Time: 上午 11:11
 */
//1. array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素

$arr=[1,3,'',6.6,false,'hello',null,'jquery'];
echo '<pre>',var_export($arr),"共有",count($arr),'个元素';
$arr2=array_filter($arr);
echo '<pre>',var_export($arr2),"共有",count($arr2),'个元素<hr>';
//非常适合删除数组中的空元素

//传入一个回调: 匿名函数
$arr3 = ['one','two',3,4,5];
$arr4 =array_filter($arr3, function ($value){
    return $value<5 || !is_numeric($value);
});
echo var_export($arr4),'<hr>';
//2. array_walk():对数组中每个元素的键和值进行处理
$cars=array('v'=>"Volvo",'b'=>"BMW",'s'=>"SAAB");
array_walk($cars ,function (&$value,$key){
    echo $value,':',$key,'<br>';
});
echo '<hr>';
// 回调的第三个参数的用法
//$arrc = ['name'=>'admin1','email'=>'qq@qq.com1'];
//
//array_walk($arrc, function (&$value, $key, $name) {
//    //如果当前的用户名是:admin,则授权查看,否则拒绝
//    if ($value != $name) {
//        exit('无权查看');
//    } else {
//        exit($key.':'.$value);
//    }
//
//},'admin1');
//echo '<hr>';

//function myfunction($value,$key,$p)
//{
//    echo "$key $p $value<br>";
//}
//$a=["a"=>"red","b"=>"green","c"=>"blue"];
//array_walk($a,"myfunction","has the value");
//var_export($a);

//更改一个数组元素的值(请注意 &$value):
function myfunction1(&$value,$key)
{
    $value="yellow";
}
$aa=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($aa,"myfunction1");
print_r($aa);

运行实例 »

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

3.关联数组实例

<?php
/**
 *用for()循环来遍历关联数组
 */
$arr=['php','html','css','javascript','jquery','ajax'];
$arr1 = '';
for($i=0; $i<count($arr); $i++){
   $arr1 .= $arr[$i].'--';
}
echo '<pre>',$arr1,'<hr>';
echo rtrim($arr1,'--'),'<hr>';

$arr2 = '';
$i=0;
while($i<count($arr)){
    $arr2 .= $arr[$i].'|';
    $i++;
}
echo $arr2,'<hr>';
echo rtrim($arr2,'|'),'<hr>';

foreach ($arr as $key=>$value) {
    $arr3[]=$value;
}
print_r($arr3);

$arrs=['a'=>'php','b'=>'html','c'=>'css','d'=>'javascript','e'=>'jquery','f'=>'ajax1'];
$arrs1 = '';
print_r($arrs);
for($i=0; $i<count($arrs); $i++){
    $arrs1=each($arrs);
    echo $arrs1['key'],':',$arrs1['value'],'<br>';
}

运行实例 »

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

总结:
1.学习数组与变量、字符串之间转换。
2.数组元素回调处理。
3.切割数组和填充数组。
4.遍历数组。
总体来说只能粗浅的理解还需要多多练习才能应用到实践之中。


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