博客列表 >PHP数据排序_字符串截取替换_2018年8月27日

PHP数据排序_字符串截取替换_2018年8月27日

宋超的博客
宋超的博客原创
2018年08月28日 16:56:271391浏览

1.字符串截取实例

<?php
/**
 * 实例演示substr(),截取字符串  string substr ( string $string , int $start [, int $length ] )
 * strstr(),strchr()返回一个字符串在另一个字符串中开始位置到结束的字符串  string strstr ( string $str, string $needle , bool $before_needle )

 * strpos()函数 返回字符串在另一字符串中第一次出现的位置(对大小写敏感),常用在查找字符串
 *相关函数:
stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
 */
$arr = 'Keep on studying each, happy learning';
echo $arr,'<br>';
$arr1 = substr($arr,2,5);
$arr2 = substr($arr,-8,-2);
echo '<pre>',$arr1,'<br>';
echo '<pre>',$arr2,'<hr>';
$arr3= strstr($arr,'s');
echo $arr3,'<hr>';
$arr31= strstr($arr,'s',true);
echo $arr31,'<hr>';

$arr4 = strpos($arr,'s',true);
echo $arr4,'<br>';
echo strpos("You love php, I love php too!","php");

运行实例 »

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

2.字符串替换实例

<?php
/**
 * str_replace(), substr_replace()
 */
//1.str_replace() str_ireplace是str_replace的忽略大小写版本  子字符串替换
$bodytag = str_replace("PHP", "JAVA", "<span class='body'>PHP中文网</span>");
echo $bodytag,'<hr>';
$words = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$words = str_replace($words,'',"Hello World of PHP");
echo $words.'<hr>';

$ctext = '好好学习,天天向上,每天进步一点点';
$re = ['好','天','上'];
$rt = ['good','day','up'];
//$ctext=str_replace($ctext,"$rt","$re");
$ctext = str_replace($re,$rt,$ctext);
echo print_r($ctext,true),'<hr>';

//2.substr_replace() 替换字符串的子串,指定位置替换
//mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] )
/*
 * substr_replace() 在字符串 string 的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。
 * string 输入字符串。
start 如果 start 为正数,替换将从 string 的 start 位置开始。
如果 start 为负数,替换将从 string 的倒数第 start 个位置开始。
length 如果设定了这个参数并且为正数,表示 string 中被替换的子字符串的长度。
如果设定为负数,它表示待替换的子字符串结尾处距离 string 末端的字符个数。
如果没有提供此参数,那么它默认为 strlen( string ) (字符串的长度)。
当然,如果 length 为 0,那么这个函数的功能为将 replacement 插入到 string 的 start 位置处。*/
$var = 'ABCDEFGH:/IJK223lMNRPQR/';
echo "$var<hr />\n";
echo strlen($var),'<hr>';
echo substr_replace($var,'abc',0),'<hr>';
echo substr_replace($var,'abc',0,-5),'<hr>';
echo substr_replace($var,'',5,5),'<hr>';

运行实例 »

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

3.数组排序实例

<?php
/*
*数组排序
*/
//$arr = [1,3,2,5,3,7,9,6,8];
//sort($arr);
//echo '<pre>',var_export($arr),'<hr>';
//rsort($arr);
//echo var_export($arr),'<hr>';


//usort() 通过用户自定义的比较函数对数组进行排序
$arr = [1,3,2,5,7,9,6,8];

usort($arr,function ($var1, $var2){
     $rts = $var1 - $var2;
     switch ($rts){
         case($rts < 0):
             return -1;
             break;
         case($rts>0):
             return 1;
             break;
         case ($rts == 0):
                 return 0;
                 break;
             }
    });
var_export($arr);
echo '<hr>';
function my_sort($a,$b)
{
    if ($a==$b) return 0;
    return ($a<$b) ? 1 : -1;
}
echo '<pre>';
$a=array(4,2,3,5,7,6,11,9,10);
usort($a,"my_sort");
print_r($a);
usort($a,function($c,$d){
    if ($c == $d) return 0;
    return ($c<$d) ? -1 : 1;
});
print_r($a);

$sort=['one'=>['id'=>11,'name'=>'php'],'two'=>['id'=>2,'name'=>'css'],'three'=>['id'=>6,'name'=>'html'],'four'=>['id'=>4,'name'=>'javascript']];
print_r($sort);
usort($sort,function ($a,$b){
    if($a['id'] == $b['id']) return 0;
    return ($a['id'] < $b['id']) ? 1 : -1;
});
echo print_r($sort,true),'<hr>';
usort($sort,function ($a,$b){
    if($a['id'] == $b['id']) return 0;
    return ($a['id'] < $b['id']) ? -1 : 1;
});
echo print_r($sort,true),'<hr>';
$sorta=['one'=>['id'=>11,'name'=>'php'],'two'=>['id'=>2,'name'=>'css'],'three'=>['id'=>6,'name'=>'html'],'four'=>['id'=>4,'name'=>'javascript']];
uksort($sorta, function($m, $n) {

    $a = substr($m['name'],1,1 );
    $b = substr($n['name'],1,1 );
    return strcmp($a, $b);
});
echo '<p style="background:red">',print_r($sorta,true),'</p>';


$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');

function build_sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}
usort($array, build_sorter('key_b'));
foreach ($array as $item) {
    echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
echo '<hr>';
usort($array, build_sorter('key_a'));
foreach ($array as $item) {
    echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}

运行实例 »

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

总结:

  1. 字符串的截取以及替换学习。

  2. 数组排序学习,根据值、键以及自定义排序。usort通过用户自定义的比较函数对数组进行排序还需要再多练习。

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