php基础之字符串和数组的相互转换及其常用属性(与js相对应的属性 比较)
我将来想从事的行业的是前端行业,所以会与js进行比较,以便更好的区别,太多,这里介绍几个常用的
字符串 =》 数组
数组 =》 字符串
数组的合并
数组的排序
字符串 =》 数组
//split()有两个参数,第一个为字符串或正则,第二个为返回的数组的最大长度
<script>
var str = "测试1,测试2 测试3";
var arr1 = str.split(',');
var arr2 = str.split(' ');
console.log(str); // 测试1,测试2 测试3
console.log(arr1); //["测试1", "测试2 测试3"]
console.log(arr2); //["测试1,测试2", "测试3"]
</script>
<?php
// 字体设置
header('Content-type:text/html;charset=utf-8');
$str = "测试1,测试2 测试3";
$arr1 = explode(",", $str); //注意大小写
$arr2 = explode(" ", $str);
// list() 函数用于在一次操作中给一组变量赋值。即类似于数组的键
list($str1,$str2) = explode(" ",$str);
print_r($arr1); // Array ( [0] => 测试1 [1] => 测试2 测试3 )
print_r($arr2); //Array ( [0] => 测试1,测试2 [1] => 测试3 )
var_dump($str1); //string(17) "测试1,测试2"
var_dump($str2); // string(7) "测试3"
?>
在php 中,如果不知道以什么字符分割,也可以使用str_split()
第一个参数为所传字符,第二个为以几个字符为分割一次,不写在为逐个分割
<?php
$str = "hello word";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1); //Array ( [0] => h [1] => e [2] => l [3] => l [4] => o [5] => [6] => w [7] => o [8] => r [9] => d )
print_r($arr2); //Array ( [0] => hel [1] => lo [2] => wor [3] => d )
?>
<script>
var arr =["测试1","测试2", "测试3"];
var str1 = arr.join();
var str2 = arr.join('---');
console.log(str1); //测试1,测试2,测试3 即默认以逗号分开
console.log(str2); //测试1---测试2---测试3
</script>
<?php
$arr = array('Hello','World!','I','love','you!');
echo implode($arr); //HelloWorld!Iloveyou! 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
echo implode("---",$arr); //Hello---World!---I---love---you!
?>
下列分为两个部分,第一个部分为php与js的属性比较,第二部分为对他们的解释(√ 为功能一样)
js Array属性 | js功能 | php Array属性 | php功能 |
---|---|---|---|
concat() | √ | array_merge() | 合并一个或多个数组, 返回结果数组 |
sort() | 对数组的元素进行排序。 排序顺序可以是字母或数字,并按升序或降序。 默认排序顺序为按字母升序。 返回值为对数组的引用。请注意,数组在原数组上进行排序,不生成副本。 | shuffle() | 打乱数组 成功时返回 TRUE, 或者在失败时返回 FALSE。 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 | array_push() | 将一个或多个单元压入数组的末尾(入栈) |
pop()。 | 删除数组的最后一个元素并返回删除的元素 | array_pop () | 弹出数组最后一个单元(出栈) |
其他的类似,附上链接,详细内容请自行了解
php链接php array()详细属性
js链接js array详细属性
合并一个或多个数组,返回结果数组
注:concat()不影响原数组
var arr1 = [1,2,3]
var arr2 = ['a','b','c']
var arr3 = ['你','好','呀']
var newarr = arr1.concat(arr2,arr3);
console.log(newarr); //[1, 2, 3, "a", "b", "c", "你", "好", "呀"]
$arr1 = array(1,2,3);
$arr2 = array('a','b','c');
$arr3 = array('你','好','呀');
print_r(array_merge($arr1,$arr2,$arr3));
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => a [4] => b [5] => c [6] => 你 [7] => 好 [8] => 呀 )
对数组进行排序
srot()如果不带参数,是将按字母顺序对数组中的元素进行排序,也就是是按照字符编码的顺序进行排序。
注:改变原数组
1)直接使用sort进行排序
var arr1 = ['a', 'd', 'c', 'b'];
var arr2 = [10, 5, 40, 25, 100, 1];
arr1.sort();
arr2.sort();
console.log(arr1); //(4) ["a", "b", "c", "d"]
console.log(arr2); //(6) [1, 10, 100, 25, 40, 5]
2)按照数值大小进行排序-升序
var arr = [10, 5, 40, 25, 100, 1];
var newarr = arr.sort(function (a, b) {
return a - b;
})
console.log(newarr);//(6) [1, 5, 10, 25, 40, 100]
3)按照数值大小进行排序-降序
var arr = [10, 5, 40, 25, 100, 1];
var newarr = arr.sort(function (a, b) {
return b - a;
})
console.log(newarr);//(6) [100, 40, 25, 10, 5, 1]
4)乱序输出
var arr = [10, 5, 40, 25, 100, 1];
var newarr = arr.sort(function (a, b) {
return Math.random() - 0.5
})
console.log(newarr);//(6) [25, 40, 5, 100, 10, 1] 每次都不同
1)php中排序函数太多,这里只介绍一个乱序输出,想要具体了解,请点击下面链接
详细php排序函数https://www.php.net/manual/zh/array.sorting.php
注:php中返回布尔值
<?php
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
echo "$number "; //16 14 11 4 17 12 3 2 13 1 16 15 19 10 8 9 20 18 7 5
}
?>
push()
var arr = [1,2,3];
arr.push(4);
console.log(arr); //(4) [1, 2, 3, 4]
array_push()
<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack); //Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )
?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理