首頁 >後端開發 >PHP問題 >php中字串可以轉換成陣列嗎

php中字串可以轉換成陣列嗎

青灯夜游
青灯夜游原創
2022-07-26 15:25:478989瀏覽

php字串可以轉換成陣列。 5種轉換方法:1、用「str_split(字串,元素長度)」將字串轉為陣列;2、用「explode(分割子,字串)」將字串轉為陣列;3、用「preg_split ('匹配模式',字串,-1,$flags)」轉換;4、用「settype(字串,"array")」轉換;5、在字串變數之前加上用括號括起來的目標類型「(array)」。

php中字串可以轉換成陣列嗎

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

php中字串可以轉換成數組。 在php中,可以有多種方法將字串轉為陣列。

方法1:使用str_split()函數

str_split() 函數把字串分割到陣列中,即將字串轉為字元陣列。

str_split(string,length)

參數說明如下:

  • string    必需。規定要分割的字串。   

  • length    可選。規定每個數組元素的長度。預設是 1。

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = &#39;hello&#39;;
echo "原字符串:";
var_dump($str);
echo "将字符串转为数组:";
$arr1=str_split($str);
var_dump($arr1);
$arr2=str_split($str,2);
var_dump($arr2);
?>

php中字串可以轉換成陣列嗎

方法2:使用explode()函數

explode() 函數可以基於字串分割符拆分字串,即它將一個字串根據分隔符號拆分為若干個子字串,然後將這些子字串組合成數組並返回。

explode($delimiter, $string [, $limit])

參數說明如下:

  •         $delimiter:用於分割字串的分割字元;
  •         $string:需要分割的字串;
  •         $limit:可選參數,可為空,規定要傳回陣列元素的數目;
    •                 如果 $limit 不為空且為正數,則回傳的陣列最多包含 $limit 個元素,最後的那個元素包含了 $string 的剩餘部分;
    •                 如果 $limit 不為空且為負數,則傳回除了最後的 $limit 個元素外的所有元素;
    •                 如果 $limit 為 0,則會被當作 1;
    •                 如果 $limit 為空,則表示傳回所有陣列元素。

範例:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = &#39;hypertext language programming&#39;;
echo "原字符串:";
var_dump($str);
echo "将字符串转为数组(分割符为空格):";
$arr=explode(" ",$str);
var_dump($arr);
?>

php中字串可以轉換成陣列嗎

#方法3、使用preg_split()函數--將字串轉換為陣列

preg_split() 函數透過一個正規表示式來分割字串。

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

參數說明如下:

  • $pattern:用於匹配的模式,也即正規表示式。
  • $subject 要分割的字串。
  • $limit:可選參數,如果指定,就將限制分隔得到的子字串最多只有 limit 個,並且最後一個子字串將包含所有剩餘部分。 limit 值為 -1、0 或 NULL 時都代表“不限制”,建議使用 NULL。
  • $flags:可選參數,它有 3 個取值。
    • 若設定為 PREG_SPLIT_NO_EMPTY,則 preg_split() 將傳回分隔後的非空部分。
    • 若設定為 PREG_SPLIT_DELIM_CAPTURE,則分隔的模式中的括號表達式將會被擷取並傳回。
    • 若設定為 PREG_SPLIT_OFFSET_CAPTURE,則對於每一個出現的符合返回時會附加字串偏移量。

                注意:這將會改變傳回陣列中的每一個元素,使每個元素成為由第0 個元素為分隔後的子字串、第1 個元素為該子字串在subject 中的偏移量所組成的陣列。

傳回值:傳回一個使用 $pattern 分割 subject 字串後得到的子字串組成的陣列。

範例:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = &#39;1 2 3 4,5 6-7 8=9&#39;;
var_dump($str);
$arr=preg_split(&#39;/ /&#39;, $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
var_dump($arr);
?>

php中字串可以轉換成陣列嗎

方法4:使用settype()函數

settype()函數可以重新設定變數的類型,將字串變數的類型轉為陣列。

settype($var,$type)

參數說明如下:

  • $var: 要轉換的變數。

  • $type: 需要的資料型態。

只需將$type設為「"array"」即可變數$var設定為陣列類型。

附註:settype()函數會改變原變量,設定成功時傳回 TRUE, 失敗時傳回 FALSE。

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = &#39;hello world!&#39;;
echo "原字符串:";
var_dump($str);
echo "将字符串转为数组类型:";
$arr=settype($str,"array");
var_dump($str);
var_dump($arr);
?>

php中字串可以轉換成陣列嗎

方法5:在字串變數之前加上用括號括起來的目標類型「(array)」

  • (array):強制將指定變數轉換成陣列型別;

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = &#39;hello world!&#39;;
echo "原字符串:";
var_dump($str);
echo "将字符串转为数组类型:";
$arr=(array)$str;
var_dump($arr);
?>

php中字串可以轉換成陣列嗎

推荐学习:《PHP视频教程

以上是php中字串可以轉換成陣列嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn