Blogger Information
Blog 36
fans 1
comment 0
visits 32463
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组转换_回调处理_遍历数组-2018年8月24日
宋超的博客
Original
698 people have browsed it

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.遍历数组。
总体来说只能粗浅的理解还需要多多练习才能应用到实践之中。


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
Author's latest blog post