[ถามPHP] ช่วยแตกstring เป็น array3ชั้นพร้อมkeyให้หน่อยครับงงมาก

เริ่มโดย vpsman, 29 กันยายน 2010, 00:53:07

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

vpsman

ถ้าผมมี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:

NightClub

<?
$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

แถม
<?
$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

อ้างถึงจาก: 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>


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

NightClub

ิ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 มาเลย