ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: vpsman ที่ 29 กันยายน 2010, 00:53:07



หัวข้อ: [ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก
เริ่มหัวข้อโดย: vpsman ที่ 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:


หัวข้อ: Re: [ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก
เริ่มหัวข้อโดย: NightClub ที่ 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);

}

?>

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


หัวข้อ: Re: [ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก
เริ่มหัวข้อโดย: NightClub ที่ 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>


หัวข้อ: Re: [ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก
เริ่มหัวข้อโดย: vpsman ที่ 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ได้เลยเปล่าครับ?


หัวข้อ: Re: [ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก
เริ่มหัวข้อโดย: NightClub ที่ 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]
);

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