创建数组
$array1 = swoole_array([39;hello', 'world']);$array2 = swoole_array(['hello' => 1, 'world' => 2]);$array3 = swoole_array_list('hello', 'world', 'swoole', 'php');
创建字符串
// Bytes 字符串$string1 = swoole_string('hello world, php java, swoole');// 宽字符串$string2 = swoole_mbstring('我是中国人');// 返回 5$string2->length();
获取元素
// 获取$value1 = $array1->get(0);$value2 = $array2->get('hello');// 数组的第一个元素$first = $array->first();// 数组的末了一个元素$last = $array->last();
增加/设置
// 设置$array1->set(0, 'swoole');$array2->set('world', 9);// 在末端追加$array1->pushBack('java');// 在头部插入$array1->pushFront('go');// 在中间 offset 2 插入$array1->insert(2, 'rust');
连续追加
$array1->append('rust')->append('c++')->append('swift', 'kotlin');$array2->set('rust', 99)->set('c++', 88)->set('kotlin', 77);
删除
// 按 key 删除$array1->delete(0);$array2->delete('worker');// 按 value 删除$array1->remove('hello');
包含
利用contains()方法可以判断数组或字符串中是否包含某个元素。
$array1->contains('java');$string1->contains('php');
利用startsWith()和endsWith()方法判断字符串开头和结尾是否为指定的值。
$str = swoole_string('php and swoole');$str->startsWith('php'); //true$str->startsWith('java'); //false$str->endsWith('swoole'); //true$str->endsWith('golang'); //false
搜索
// 查找数组中是否有某个值,存在则返回其 key$key = $array1->search('java');
结合利用
String与Array可以结合利用。
$s = '11, 33, 22, 44,12,32,55,23,19,23';$data = swoole_string($s) ->split(',') ->each(fn(&$item) => $item = intval($item)) / < 7.4 : function (&$item){ $item = intval($item);} / ->sort() ->unique() ->join('-') ->contains('-44-');var_dump($data);
首先构建了一个字符串工具利用split按照,分割为数组遍历并运用$fn函数将元素转换为整数排序去重将数组元素利用-组合成为字符串判断字符串工具中是否包含-44-类型推断
对 swoole_array工具元素操作时,底层会自动判断它的类型,如果为数组或字符串,底层会递归封装。
$array = swoole_array_list(['hello' => 'swoole']);$array->get(0)->get('hello')->contains('swoole');
性能测试
底层实现实在便是基于str_和array_干系函数进行面向工具封装,没有过多性能损耗,仅为一次method调用开销。我们编写了严格的单测覆盖到每个API,担保其可靠性。
性能方面,利用String::contains()实行100万次,与直接运行 php strpos差距不大。
swoole_string: 0.059892892837524s, php_string: 0.033510208129883s
然而在这里可能有PHPer说用Go不喷鼻香吗?要想成为一个精良的开拓者,你该当关注办理问题层面上来,用现有的技能资源去造诣商业,而不是用公司的资源去造诣一门技能,为了技能而技能!
如果你不能用一种措辞里面的基本特性写出好的代码办理问题,那你换成其余一种措辞也无济于事。技能职员的发展一贯都是“T”字型,如果连用饭的PHP都学不好,转Java、GO措辞你就能成为大牛了?
而PHP学到极致就不仅限于PHP的利用,势必涉及到性能优化,算法、Swoole、微做事、分布式高并发、Linux、Kafka、MQ等不一而足;先精一门,为全面且不肤浅打根本。为了大家能够顺利进阶架构师,我特地准备了一套佳构PHP架构师教程,助你薪资打破30K。
领取办法:点赞关注
领取办法:点赞关注小编后私信【资料】获取资料领取办法!