【PHP】代码优化——implode()替换字符串拼接

PHP代码优化(一)

本文来自lz多终端APP接口开发的案例,看着乱做一团的代码,每次优化一个方法,就用它写博客,记录这段优化代码的过程:

目录


implode()简介(参考explode学习)

定义和用法: 参考w3school定义
implode() 函数返回由数组元素组合成的字符串。
注释1:
implode() 函数接受两种参数顺序。但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行。

注释2:

implode() 函数的 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。

注释3:
该函数是二进制安全的。
语法:
implode(separator,array)
参数 描述
separator 可选。规定数组元素之间放置的内容。默认是 “”(空字符串)。
array 必需。要组合为字符串的数组。

案例分析

代码1

<?php
// 数据源(测试可替换)
$sub_seg_datas = $ctx->getObjs (1, "c5428a46219ee15e15034a87faa7035a");      
$d = array (); 

// String 字符串拼接(原方式)
$t3=microtime(true);
foreach ( $sub_seg_datas as $sub_seg_data ) {
    if ($sub_seg_data->title && $d["subtitle"]){
        $d["subtitle"] = $d["subtitle"] . "," . $sub_seg_data->title;
    //赋值第一条搜索数据
    }else if($sub_seg_data->title && !$d["subtitle"]){
        $d["subtitle"] = $sub_seg_data->title;
    }
}
$t4=microtime(true);

?>

代码2

<?php       
unset($d["subtitle"]); 

// 新方式:array_push+implode
$keys_array = array();

$t1=microtime(true);
foreach ( $sub_seg_datas as $sub_seg_data ) {
    array_push($keys_array, $sub_seg_data->title);
}
$d["subtitle"] = implode(",", $keys_array);
$t2=microtime(true);

// 输出运行结果
echo "<br>array_implode_time: " . ($t2-$t1) . ";<br>string_time: " . ($t4-$t3) . ";<br>";

?>

测试结果

array_implode_time: 1.8119812011719E-5;
string_time: 3.1948089599609E-5;

扯淡

  1. php函数库里对数组的处理灵活丰富。
  2. 多用内部支持的方法,效率高。
  3. 好好学习,天天向上。

猜你喜欢

转载自blog.csdn.net/guodonggang/article/details/78188406