ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก  (อ่าน 764 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
vpsman
คนรักเสียว
*

พลังน้ำใจ: 38
ออฟไลน์ ออฟไลน์

กระทู้: 176



ดูรายละเอียด เว็บไซต์
« เมื่อ: 29 กันยายน 2010, 00:53:07 »

ถ้าผมมีstringเป็น
$details = 'Size=Large, Color=Black | Size=Small, Color=Red | Size=Small, Color=Green';
ทำยังไงให้ได้เป็น

Array (
[ 0 ] => Array (
                [Size] => Large
                [Color] => Black
                          )
[ 1 ] =>  Array (
                [Size] => Small
                [Color] => Red
                          )
[ 2 ] =>   Array (
                [Size] => Small
                [Color] => Green
                          )
)
งงไปหมดแล้ว..ช่วยแนะนำหน่อย
 wanwan031
« แก้ไขครั้งสุดท้าย: 29 กันยายน 2010, 00:54:34 โดย vpsman » บันทึกการเข้า
NightClub
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 297
ออฟไลน์ ออฟไลน์

กระทู้: 2,461



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 29 กันยายน 2010, 01:24:18 »

โค๊ด:
<? 
$details = 'Size=Large, Color=Black | Size=Small, Color=Red | Size=Small, Color=Green';

$post = explode("|",$details);
$i = 0;
$banword = array("Size=","Color=");
foreach($post as $r){
$r = str_replace($banword,'',$r);
$returntext = explode(", ",$r);

}

?>

ต่อยอดเอาเองนะครับ เหลืออีกนิดหน่อย
บันทึกการเข้า

รับจ้างเขียนโปรแกรม PHP งานมืออาชีพ เสร็จตามที่กำหนด ราคาปานกลาง
เหมาะกับผู้ที่รับงานมาแล้วส่งต่อจ๊ะ PM มาเลย
NightClub
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 297
ออฟไลน์ ออฟไลน์

กระทู้: 2,461



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 29 กันยายน 2010, 01:42:04 »

แถม
โค๊ด:
<? 
$details = 'Size=Large, Color=Black | Size=Small, Color=Red | Size=Small, Color=Green';

$post = explode("|",$details);
$i = 0;
$banword = array("Size=","Color=");
foreach($post as $r){
$r = trim(str_replace($banword,'',$r));
$returns = explode(", ",$r);

$post[$i] = array(
Size=>$returns[0],
Color=>$returns[1]
);


$i = $i+1;
}

?>
<pre><? print_r($post);?></pre>
บันทึกการเข้า

รับจ้างเขียนโปรแกรม PHP งานมืออาชีพ เสร็จตามที่กำหนด ราคาปานกลาง
เหมาะกับผู้ที่รับงานมาแล้วส่งต่อจ๊ะ PM มาเลย
vpsman
คนรักเสียว
*

พลังน้ำใจ: 38
ออฟไลน์ ออฟไลน์

กระทู้: 176



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 29 กันยายน 2010, 02:00:10 »

แถม
โค๊ด:
<? 
$details = 'Size=Large, Color=Black | Size=Small, Color=Red | Size=Small, Color=Green';

$post = explode("|",$details);
$i = 0;
$banword = array("Size=","Color=");
foreach($post as $r){
$r = trim(str_replace($banword,'',$r));
$returns = explode(", ",$r);

$post[$i] = array(
Size=>$returns[0],
Color=>$returns[1]
);


$i = $i+1;
}

?>
<pre><? print_r($post);?></pre>

โหสุดยอด +1(ยังบวกไม่ได้ ขอติดไว้ก่อน)
แล้วถ้ามันมีมากกว่า Size, Colorหล่ะครับ หากมี Style , Shop , Discount , Price ฯลฯ เพิ่มมาอีก ต้องเพิ่มตรงไหนครับ ใส่ใน $banwordได้เลยเปล่าครับ?
บันทึกการเข้า
NightClub
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 297
ออฟไลน์ ออฟไลน์

กระทู้: 2,461



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 29 กันยายน 2010, 05:00:28 »

ิbanword เอาไว้ตัดคำ จะได้ใช้ explode เอาออกมาได้ง่ายๆครับ เช่น

$details = 'Size=Large, Color=Black ,Memory=2Gb';

$banword = array("Size=","Color=","Memory=");

เราต้องเพิ่ม

$post[$i] = array(
Size=>$returns[0],
Color=>$returns[1],
Memory=>$returns[2]
);

แค่นี้แหละครับ พอดีว่างๆเลยนั่งทำให้
บันทึกการเข้า

รับจ้างเขียนโปรแกรม PHP งานมืออาชีพ เสร็จตามที่กำหนด ราคาปานกลาง
เหมาะกับผู้ที่รับงานมาแล้วส่งต่อจ๊ะ PM มาเลย
หน้า: [1]   ขึ้นบน
พิมพ์