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 )
?>
posted @ 2022-04-02 09:47  coderwcb  阅读(37)  评论(0编辑  收藏  举报