PHP 数组转字符串问题
在使用PHP时,我们会遇到许多与数组相关的问题,其中无法直接对数组进行操作。为了解决这个问题,我们首先需要将数组转换为字符串,然后才能有效地对单个元素进行操作。
字符串用于按顺序存储字符并将其表示为单个实体,具有单一的数据类型。因此,数据存储是灵活的,易于处理,而数组会将数据存储为特定的实体,数据存储是固定的。
我们将介绍PHP中将数组元素转换为字符串的三种方法。
1)PHP中的Implode()函数
Implode() 函数是一个内置的PHP函数,主要用于连接声明的数组中的所有元素。当所有数组元素被连接在一起时,它们形成一个字符串, implode() 函数与PHP中的 join() 函数类似,并将值作为字符串返回。
注意:- 数组以字符串形式表示,但基本数据类型仍然是数组。如果我们在转换后的字符串上使用gettype()函数,它仍然会显示为数组。
语法 -> implode (separator, array)
在这里, 分隔符 是指在将数组转换为字符串时,我们必须在元素之间添加的内容。默认值是空字符串””,但我们可以添加许多不同的值,如 , 、 – 、 _ 、 + 、 ; 、 : 等。
Array 代表要作为字符串连接的数组。
示例: 将数组转换为字符串。
<?php
// Declare an array
arra = array ("This" , "Array" , "Will" , "Be" , "Converted" , "To" , "A" , "String");
// original array
print_r (arra);
echo " <br> ";
echo " converted array " . " <br> ";
// Converting array elements into strings using implode function
echo implode (" ",$arra);
?>
当我们按照以上所述执行代码时,编译器将给出以下输出 –
Array ( [0] = > This [1] = > Array [2] = > Will [3] = > Be [4] = > Converted [5] = > To [6] = > A [7] = > String )
converted array
This Array Will Be Converted To A String
- 在上面的代码中,首先我们声明了一个数组,名称为 $arra ,并为它赋值。这里每个元素被视为独立的身份。
- 为了显示原始数组,我们使用了 Print_r 函数,它会分别显示每个数组。
- 最后,我们使用 implode() 函数将数组的所有元素转换为字符串。我们将参数 separator 设置为””以在元素之间添加空格,将参数 array name 设置为定义数组的名称。
示例: 将数组转换为字符串,使用不同的参数。
<?php
arra = array (? This " , " Is " , " An " , " ARRAY" , " ! " );
echo " <h4> "." Default array " . " </h2> ";
print_r (arra);
echo " <h4> " . " Array to string " . " </h2> ";
echo implode(" ",arra)."<br>"; // default separator
echo implode("_",arra)."<br>";
echo implode("-",arra)."<br>";
echo implode("/",arra);
echo " <h4> " . " Data type: - " . " </h2> ";
echo gettype ($arra);
?>
当我们按照上述的代码执行时,编译器将会给出以下输出 –
Default array
Array ( [0] => This [1] => Is [2] => An [3] => ARRAY [4] => ! )
Array to string
This Is An ARRAY !
This _ Is _ An _ ARRAY_ !
This - Is - An - ARRAY- !
This / Is / An / ARRAY/ !
Data type: -
Array
- 在上述代码中,我们首先声明一个名为 $array 的数组,并赋予一些值。在这里,每个元素被视为独立的实体。
- 为了显示原始数组,我们使用了 Print_r 函数,它会将数组的每个元素分别显示。
- 然后,我们使用了 implode() 函数,将所有数组元素转化为字符串。最后,我们初始化了不同的 分隔符 以在元素之间添加空格。
- 最后,我们对转换后的数组使用了gettype()函数,以展示即使转换为字符串,数组的初始数据类型仍然保持不变。
注意:我们可以使用explode()函数将字符串再次转换为数组
示例 – >将字符串转换回数组
<?php
strng=" we will convert string back to array "; echo " <strong> " . " original string -> " . " </strong> " . (strng) . " <br> ";
//explode function converts an string into array
arra=explode(" ",strng);
echo " <strong> " . " converted array -> " . " </strong> " ;
print_r($arra);
?>
当我们按照上述代码执行时,编译器将会给出以下输出结果 –
original string -> we will convert the string back to an array
converted array -> Array ( [0] = > we [1] = > will [2] = > convert [3] = > string [4] = > back [5] = > to [6] = > array )
- 在上面的代码中,我们首先声明了一个名为$strng的数组,并为其赋值。
- 然后,我们使用了 explode() 函数,将所有的字符串元素转换回数组。最后,我们将转换后的字符串存储到变量 $arra 中。
- 为了显示原始数据,我们使用了 Print_r 函数,它会分别显示每个数组。
2) PHP中的Join()函数
Join() 函数是一个内置的PHP函数,通常用于将数组连接起来并返回一个字符串。
语法 -> join (separator, array)
分隔符 是指在将数组转换为字符串时需要在元素之间添加的内容。默认值是一个空字符串””,但我们可以添加多种不同的值,如”, ” “-” “_” + “;” “:”等。
数组 代表将作为字符串连接的数组。
示例: 使用join方法将数组转换为字符串。
<?php
// PHP Code to implement join function
arra = array ("This" , "Array" , "Will" , "Be" , "Converted" , "To" , "A" , "String");
echo " <strong> " . " original array " . " </strong> " . " <br> ";
// original array
print_r (arra);
echo " <br> ";
echo " <strong> " . " converted array " . " </strong> " . " <br> ";
// Converting array elements into strings using implode function
echo join (arra). " <br> ";
echo join (" _ ",arra);
?>
当我们按照上述代码执行时,编译器会给出输出 –
original array
Array ( [0] = > This [1] = > Array [2] = > Will [3] = > Be [4] = > Converted [5] = > To [6] = > A [7] = > String )
converted array
This Array Will Be Converted To A String
This _ Array _ Will _ Be _ Converted _ To _ A _ String
- 在上面的代码中,首先我们声明了一个名为 $arra 的数组,并给它赋了一些值。这里每个元素都被视为一个独立的身份。
- 为了显示原始数据,我们使用了 Print_r 函数,它会将每个数组单独显示出来。
- 最后,我们使用了 join() 函数,它将把数组的所有元素转换成一个字符串。我们初始化了两个参数 separator 和 array name ,分别用于在元素之间添加空格和定义数组。
3) Json_encode()函数在PHP中的使用
Json_encode() 函数是PHP中的一个内置函数,通常用于将数组和对象转换成JSON字符串(JavaScript对象表示)。
注意:- JSON通常用于从Web服务器检索数据,并在网页上显示相同的数据。
语法 -> json_encode (array / object name)
Array/Object Name 代表将作为字符串连接的数组。
**示例 – > ** 使用json_encode将数组转换为字符串。
<?php
// Declare multi-dimensional array
Profile = array( " f-name " => " ABC ", " l-name " => " DEF ",
array( " email " => " abc@def.com ", " mobile " => " abcdefghij ",
array(" address " =>" klmnopqrst ",
" city " => " OAB ",
" pincode " => " 110090 ",
)
)
);
// Use json_encode() functionjson = json_encode(Profile);
// Display the output
echo(json);
?>
执行上述代码时,编译器将输出:
{"f-name":"ABC","l-name":"DEF","0":{"email":"stash","mobile":"abcdefghij","0":{"address":"klmnopqrst","city":"OAB","pincode":"110090"}}}
- 在上面的代码中,我们首先声明了一个名为 $profile 的数组,并在变量内声明了一个多维数组。
- 之后,我们声明了一个变量 $json ,用于保存返回值。
- 然后,我们使用了 json_encode() 函数,将数组的所有元素转换为字符串。
- 最后,我们使用 echo($json) 来获取输出字符串。