博客列表 >0827作业:字符串的操作及数组排序

0827作业:字符串的操作及数组排序

Samoye
Samoye原创
2018年09月02日 23:28:14731浏览

作业1;演示str_replace(), substr_replace()

实例

<?php
/**
   str_replace 和 substr_replace
 *  str_replace(search,replace,$str)
 *  substr_replace($str,replacement,start,lenght)
 */
// str_replace()  str_ireplace()

$str1 = 'The biggest adventure you can take is to live the life of your dreams.';

echo str_replace('biggest','best',$str1),'<hr>';
echo str_replace('.','',$str1),'<hr>';
echo str_replace(['you','your'],['I','my'],$str1),'<hr>'; //结果好奇葩

//substr_replace()

$str = '2 礼物 热 li夫';

echo substr_replace($str1,$str,0),'<hr>'; //全部替换
echo substr_replace($str1,$str,strlen($str1)),'<hr>';//在尾部增加
echo substr_replace($str1,$str,3,8),'<hr>';//指定在那个位置,替换几个字符
echo substr_replace($str1,'1+1=2',12,0),'<hr>';//在指定位置插入

运行实例 »

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

总结:

* str_replace() 返回字符串或数组,搜索字符串,从左到右依次全部替换(或者指定被替换的次数count可选)
* substr_replace() 返回字符串或数组, 要指定替换的开始位置,替换的字符串个数

作业2:演示substr(),strstr(),strpos()函数

实例

<?php
/**
    字符串的截取和查询
 *  sbustr($str,start,lenght):返回字符串
 *  strstr(str1,str2,bool)返回字符串
 *  strpos(str1,str2,start)返回字符首次出现的位置,int
 */

//substr () 根据start 位置截取字符串

$str1 = 'The biggest adventure you can take is to live the life of your dreams.';
$str2 = substr($str1,3,7);
echo $str2,'<br>';
$str3 = substr($str1,-12 ); //从字符串的后面数,截取12个字符
echo $str3,'<hr>';

//strstr()// 根据某个字符截取该字符前/(含)后所有的字符

$str4 = 'My dream : live in the mountains';
$str5 = strstr($str4,':');//包好该字符串:
echo $str5,'<br>';
$str6 = strstr($str4,':',true); //返回字符前的字符串
echo $str6,'<hr>';

//strpos 搜索字符或字符串首次出现的位置,返回其下标

echo strpos($str1,'a'); //返回a首次出现的位置;

运行实例 »

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

总结:字符串可以看作字符的集合/数组,所以都会有下标

作业3:usort()二维数组的排序

实例

<?php
/**
    数组中的元素可以按字母或数字的顺序进行升序或降序的排序
 *  数组有索引数组和关联数组之分,还有二维数组
 *  常用的排序函数:
 *  sort():根据数组的值,升序排列
 *  rsort():根据数组的值,降序排列
 *  ksort():根据关联数组的键值,升序排列
 *  krsont():根据关联数组的键值,降序排列
 *  asort():根据关联数组的值,生序排列
 *  arsort():根据关联数组的值,降序排列
 * usort($array,function()),根据用户自定义的函数进行排序,根据数值进行排序,但并不会保存关键字
 * uasort()  排序将基于value
 * uksort() 排序将基于关键字
 *
 */
 //索引数组的排序
echo '<pre>';
$arr1 = ['peter','jimmy','albert','core','amy'];
sort($arr1);
print_r($arr1);
echo '<hr>';
rsort($arr1);
print_r($arr1);
echo '<hr>';
//关联数组的排序
$arr2 = ['id'=>110,'name'=>'peter','sex'=>'meal','height'=>'175cm'];
ksort($arr2);
print_r($arr2);
echo '<hr>';
krsort($arr2);
print_r($arr2);
echo '<hr>';
asort($arr2);// //当字母和数字排序的时候,怎么换算的??
print_r($arr2);
echo '<hr>';
// usort()利用自定义函数回调处理特殊排序

$arr3 = [
    ['id'=>110,'name'=>'python'],
    ['id'=>119,'name'=>'html'],
    ['id'=>120,'name'=>'php']
];
function fun($a,$b){
    return strcmp($a['name'],$b['name']);
}
usort($arr3,'fun');
print_r($arr3);
echo '<hr>';
/*
 * usort($arr3,function($a,$b){
 *     return strcmp($a['name'],$b['name']);
 *
 * });
 */

运行实例 »

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

/*
 * 总结:
 * sort,rsort,ksort,krsort,asort,arsort,一般都是用于一维数组的排序,
 * usort,uasort,uksort 用于2维数组,多维数组的用户自定义排序。自定义函数一定要有返回值(1.0.-1)
 * sort,usort,usort,不保持原来键名关联--更改了。
 */

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