วิธีการแปลงตัวแปรจาก String เป็น Array ยอดนิยมด้วย Php

วิธีการแปลงตัวแปรจาก String เป็น Array ยอดนิยมด้วย Php

การแปลงตัวแปรจากแบบหนึ่งไปอีกแบบหนึ่ง เป็นสิ่งที่โปรแกรมเมอร์เจอตลอดการพัฒนา บทความนี้แนะนำการแปลงตัวแปรจาก String เป็น Array ด้วยภาษา Php ที่นิยมใช้กัน ประกอบด้วย str_split, explode, preg_split

Apr 29, 2014

แก้ไขล่าสุด มีผู้อ่าน 8,186  |  PHP PROGRAMMING

การแปลงตัวแปรจากแบบหนึ่งไปอีกแบบหนึ่ง เป็นสิ่งที่โปรแกรมเมอร์เจอตลอดการพัฒนา บทความนี้แนะนำการแปลงตัวแปรจาก String เป็น Array ด้วยภาษา Php ยอดนิยม ดังนี้

 

1. str_split เหมาะกับการแปลงตัวแปร String เป็น Array โดยแบ่งเป็นขนาดเท่าๆกัน เราสามารถกำหนดขนาดที่ต้องการได้ ดังตัวอย่าง

 

ตัวอย่างที่ 1.1 ถ้าไม่กำหนดขนาดจะแบ่งเป็น 1

<?php
$str "Hello Share";
$arr1 str_split($str);
print_r($arr1);
?>

ผลลัพธ์

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => S
    [7] => h
    [8] => a
    [9] => r
    [10] => e
)
 

ตัวอย่างที่ 2.1 แบ่งโดยกำหนดขนาดเป็น 3

<?php
$str "Hello Share";
$arr2 str_split($str3);
print_r($arr2);
?>

ผลลัพธ์

Array
(
    [0] => Hel
    [1] => lo
    [2] => Sha
    [3] => re
)

 

2. explode เหมาะกับการแปลงตัวแปร String เป็น Array โดยเราสามารถป้อนค่าตัวแบ่ง (delimiter), ค่าจำกัด (limit) เพื่อให้ได้ Array ที่ต้องการ 

 
ตัวอย่างที่ 2.1 delimiter เป็น " "
<?php
$sentence  "share to your friends";
$pieces explode(" "$sentence);
print_r($pieces);
?>

ผลลัพธ์

Array
(
    [0] => share
    [1] => to
    [2] => your
    [3] => friends
)

 


ตัวอย่างที่ 2.2 delimiter เป็น ','

<?php
$input "share,olanlab";
print_r(explode(',' $input));
?>

ผลลัพธ์

Array
(
    [0] => share
    [1] => olanlab
)

 

ตัวอย่างที่ 2.3 delimiter เป็น '|' และ limit เป็น 2, -1

<?php
$str 'one|two|three|four';
// positive limit
print_r(explode('|'$str2));
// negative limit (since PHP 5.1)
print_r(explode('|'$str, -1));
?>

ผลลัพธ์

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)
  • limit ที่มีค่าเป็นบวก จะได้ Array ขนาดเท่ากับค่า limit ที่กำหนด
  • limit ที่มีค่าเป็นลบ จะได้ Array ที่ถูกตัดทิ้งจากด้านท้ายเท่ากับค่า limit ที่กำหนด

 


3. preg_split มีความสามารถมากกว่า explode เราสามารถใส่ regular expression เพื่อทำการแบ่ง String ไปเป็น Array ที่เราต้องการ 

 
ตัวอย่างที่ 3.1 regular expression เป็น "/[\s,]+/" 
 <?php
// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords preg_split("/[\s,]+/""hypertext language, programming");
print_r($keywords);
?>

ผลลัพธ์

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)

 

ตัวอย่างที่ 3.2 regular expression เป็น "//", limit เป็น -1,  flag เป็น PREG_SPLIT_NO_EMPTY
<?php
$str 'string';
$chars preg_split('//'$str, -1PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

ผลลัพธ์

Array
(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)
  • ถ้า limit เป็น -1, 0, null หมายถึงไม่มีการจำกัดขนาดผลลัพธ์ที่ถูกแบ่งเป็น Array
  • flag เป็น PREG_SPLIT_NO_EMPTY จะได้ค่าที่ไม่เป็นค่าว่างเท่านั้น

 

ตัวอย่างที่ 3.3 regular expression เป็น "/ /", limit เป็น -1,  flag เป็น PREG_SPLIT_OFFSET_CAPTURE
<?php
$str 'hypertext language programming';
$chars preg_split('/ /'$str, -1PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

ผลลัพธ์

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)
  • flag เป็น PREG_SPLIT_OFFSET_CAPTURE หมายถึง จะได้ทั้งค่าและตำแหน่งที่ถูกแบ่งออกมาด้วยดังตัวอย่างด้านบน

 

 


แบ่งปัน

ชอบ +1

บันทึก

ฝากคำถาม คำแนะนำ ได้ที่

Facebook : Share.OlanLab.Com
LINE ID : @olanlab
อีเมล์ : olan@olanlab.com
Share คลังความรู้ด้านเทคโนโลยี สารสนเทศ นวัตกรรมคอมพิวเตอร์ สอนเขียนโปรแกรม Php Java Html CSS Javascript C C++ Objective-C และอื่นๆ บนระบบปฏิบัติการ Window Linux Unix CentOS IOS Android
โดยผู้เขียนที่มีความเชี่ยวชาญเฉพาะ ให้บริการพื้นที่สำหรับนักเขียนที่ต้องการแบ่งปันความรู้ พร้อมให้คำปรึกษาแก่ผู้ที่สนใจ โดยไม่เสียค่าใช้จ่าย