Blogger Information
Blog 28
fans 0
comment 0
visits 16756
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组字符串各类方法作业-2018年04月19日21时0分
植树青年小江同志的博客
Original
518 people have browsed it

实例

<?php


// 1、数组排序方法总结
echo '<h3>1、数组排序方法总结</h3>', '<hr style="height:5px;background-color:#8e8e8e;">';


$arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true];
echo '<pre>';
echo '<p>原始数组:</p>';
print_r($arr);
echo '<hr color="red">';

/**
 * 1.sort(&$arr, $flag):正序且键名重置
 */

echo '<p>(1)、正序排列数组:</p>';
sort($arr);
print_r($arr);
echo '<hr>';

//忽略类型,其实就是按类型分组,仅在分组中对同类型数据进行排序

sort($arr, SORT_REGULAR);  
print_r($arr);
echo '<hr>';

//全部视为数值类型,字母全转为0,true转为1,

sort($arr, SORT_NUMERIC);  
print_r($arr);
echo '<hr>';

//全部视为字符类型,因为数字的ASCII码要小于字母,所有排在前面

sort($arr, SORT_STRING);   
print_r($arr);
echo '<hr>';

//自然排序,与SORT_STRING结果一致

sort($arr, SORT_NATURAL);  
print_r($arr);
echo '<hr>';

//忽略大小写,PHP5.4+以上支持

sort($arr, SORT_FLAG_CASE); 
print_r($arr);
echo '<hr color="blue">';

/**
 * 2.asort($arr, $flag):正序且键名保留
 */
$arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true];
 echo '<p>(2)、正序且键名保留</p>';

 //忽略类型,但是键值对应关系得到了保留

asort($arr, SORT_REGULAR);  
print_r($arr);
echo '<hr>';

/**
 * 3.ksort(&$arr, $flat):键名正序排列
 */
$arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true];
echo '<p>(3)、键名正序排列</p>';
 //因为忽略了类型,5与其它键名类型不同,所以在最后面
ksort($arr);  
print_r($arr);
echo '<hr>';

//全部视为字符类型,5的ASCII码在普通字母之前
ksort($arr,SORT_STRING); 
print_r($arr);
echo '<hr>';

// 全部视为数值,则字母全转为0,5就是排到了最后面
ksort($arr,SORT_NUMERIC); 
print_r($arr);
echo '<hr>';

/**
 * 4.rsort(&$arr):数组反转,忽略原键名
 */
$arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true];

echo '<p>(4)、数组反转,忽略原键名</p>';

//忽略类型分组排序
rsort($arr); 
print_r($arr);
echo '<hr>';

/**
 * 5. arsort(&$arr):数组反转,保留键名
 */
$arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true];

 echo '<p>(5)、数组反转,保留原键名</p>';


//键值对应关系不变,反转是指由大到小,所以ASCII小的数字字符排到了后面
arsort($arr, SORT_STRING); 
print_r($arr);
echo '<hr>';

/**
 * 6. krsort(&$arr): 键名反转排序 
 */
$arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true];

echo '<p>(6)、键名反转排序 </p>';

//键名全部视为字符类型,按字母表逆序排列键名
krsort($arr, SORT_STRING); 
print_r($arr);
echo '<hr>';

/**
 * 7. usort(&$arr, callback()): 用户自定义排序方式 
 */

 echo '<p>(7)、自定义 </p>';

$arr1 = [10, 4, 22, 99, 35, 18];
//自定义回调方法对$arr1进行由小到大排列
usort($arr1, function($a, $b) {
	$res = $a - $b; 
	if ($res == 0) {
		return 0;
	} else if ($res > 0) {
		return true;
	} else {
		return false;
	}
});

print_r($arr1);

echo '<hr color="red" size="3">';

// 2、字符串长度计算
echo '<h3>2、字符串长度计算</h3>';

$siteName = 'php中文网-www.php.cn';
$encoding =   mb_internal_encoding();
echo '内部字符编码集: ',$encoding,'<br>';

/**
 * 1.strlen($str):获取字节表示的字符串长度
 */
echo strlen($siteName),'<br>';

echo "<hr>";

/**
 * 2.mb_strlen($str, $encoding) :获取字符数表示的长度
 */

echo mb_strlen($siteName, $encoding),'<br>';

//省略第二个参数,会使用系统默认的字符编码集,当前是utf-8
echo mb_strlen($siteName),'<br>';  

echo '<hr color="red" size="3">';

// 3、串与数组之间的转换

echo '<h3>3、串与数组之间的转换</h3>';

$str = 'html,123,jquery,php,数据库,thinkphp';
/**
 * 1.str_split($str,$length=1)按字符数量,将字符串分割为数组,默认为1
 */

 //默认一个字符转为数组中的一个元素, 37个元素

print_r(str_split($str));
echo "<hr>";

//5个
print_r(str_split($str,5));
echo "<hr>";

/**
 * 2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
 */

 //用','号进行分割字符串

print_r(explode(',',$str));

echo "<hr>";

//指定数组必须是5个元素,最后一个元素保存全部剩余数据

print_r(explode(',',$str,5)); 

echo "<hr>";

/**
 * 3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
 */

$arr2 = explode(',', $str);

//用空格分隔

echo implode(' ', $arr2), '<br>';

echo '<hr color="red" size="3">';

// 4、字符串函数查找与替换

echo '<h3>4、字符串函数查找与替换</h3>';

$str = 'I love you - php or mysql';

/**
 * 1.strpos($str,$needle, $offset)查找字符串首次出现的位置
 */

 //默认从头开始查找
 echo strpos($str, 'p'),'<br>';

 //从索引5开始查找
 echo strpos($str, 'p', 14),'<br>'; 

/**
 * 2.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false
 */

 //返回子串及后面部分
echo strstr($str, 'php'),'<br>';

//参数true,会返回子串前面部分
echo strstr($str, 'php', true),'<br>';

/**
 * 3.str_replace($str1, $str2, $str3, $num):子串替换,
 */
echo str_replace('you','http://www',$str), '<br>';

echo "<hr>";

/**
 * 4.substr_replace($str1,$str2,$str3,$start, $length):替换字符串的子串
 */

 //在$str中,从第5个索引位置起的2个字符,用'pppph'进行替换
 echo substr_replace($str,'pppph', 13, 2);

运行实例 »

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


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