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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingขอไอเดียการเรียกข้อมูลจาก Array ซ้อนกันหลายมิติ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ขอไอเดียการเรียกข้อมูลจาก Array ซ้อนกันหลายมิติ  (อ่าน 8740 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
UnzO
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,872



ดูรายละเอียด เว็บไซต์
« เมื่อ: 12 เมษายน 2011, 16:29:26 »

อ๊ากกก... ตอนเรียน Data Structure ไม่ตั้งใจ เจออาร์เรย์ซ้อนเข้าไปเยอะๆ เรียกใช้ไม่ถูกเลย
โค๊ด:
[Items] => Array
        (
            [Request] => Array
                (
                    [IsValid] => True
                    [ItemSearchRequest] => Array
                        (
                            [Condition] => New
                            [DeliveryMethod] => Ship
                            [ItemPage] => 1
                            [Keywords] => Keywords
                            [MerchantId] => Amazon
                            [ResponseGroup] => Array
                                (
                                    [0] => ItemAttributes
                                    [1] => EditorialReview
                                    [2] => OfferFull
                                    [3] => Reviews
                                )
 
                            [ReviewSort] => -SubmissionDate
                            [SearchIndex] => All
                        )
 
                )
        )

ลองใช้ Recursive Function (ฟังก์ชั่นเรียกตัวเอง) แล้วยังไม่โดนครับ

ปล.ตอนนี้เบลอมาก คิดไม่ออกเลยครับ
« แก้ไขครั้งสุดท้าย: 12 เมษายน 2011, 16:32:14 โดย UnzO » บันทึกการเข้า
ratz
Newbie
*

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

กระทู้: 25



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 12 เมษายน 2011, 16:58:58 »

ใช้ foreach เลยคับ

บันทึกการเข้า
mSkyline
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,472



ดูรายละเอียด
« ตอบ #2 เมื่อ: 12 เมษายน 2011, 17:00:44 »

$items->request->ItemSearchRequest->ResponseGroup[0];

แบบนี้ได้หรือเปล่าครับ
บันทึกการเข้า

AnyWhereToThai รับขนสินค้าจาก US UK JP KR CN กลับไทย
https://www.facebook.com/AnyWhereToThai
UnzO
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,872



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 12 เมษายน 2011, 17:44:37 »

คือตอนนี้กำลังงงตัวเองว่าจะทำอะไร...  Tongue

คือผมเอา XML มาทำเป้น Array แล้วงงว่าจะทำอะไรต่อ

แนวคิดประมาณอยากได้ชุดข้อมูลของ XML จาก Amazon มาใส่ใน Array เพื่อความง่ายในการเรียกใช้งานหน่ะครับ เดี๋ยวคงต้องออกไปสูดอากาศข้างนอกก่อนดีกว่า
บันทึกการเข้า
LoveMiracle
สมุนแก๊งเสียว
*

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

กระทู้: 585



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 12 เมษายน 2011, 18:04:33 »

ก็เรียกแบบ array ดิครับ
$items['request']['ItemSearchRequest']['ResponseGroup'][0]
« แก้ไขครั้งสุดท้าย: 12 เมษายน 2011, 18:05:27 โดย LoveMiracle » บันทึกการเข้า

mSkyline
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,472



ดูรายละเอียด
« ตอบ #5 เมื่อ: 12 เมษายน 2011, 18:59:33 »

amezon ไม่มี JSON ให้เหรอครับ

ebay yahoo ยังมีให้เลย
บันทึกการเข้า

AnyWhereToThai รับขนสินค้าจาก US UK JP KR CN กลับไทย
https://www.facebook.com/AnyWhereToThai
Synchronize
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,231



ดูรายละเอียด
« ตอบ #6 เมื่อ: 12 เมษายน 2011, 19:01:16 »

ผมงงโจทย์

  Tongue
บันทึกการเข้า

npbook
Newbie
*

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

กระทู้: 51



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 13 เมษายน 2011, 01:41:57 »

ถ้าพูดถึงความง่ายในการดึงข้อมูลที่ซับซ้อนแล้ว function xpath ของ xml มันน่าจะง่ายกว่า array นะครับ
บันทึกการเข้า

NPBook
kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 13 เมษายน 2011, 11:10:13 »

ใช้ simple xml ทำสิ ง่ายๆ for each ก็ได้แล้ว ได้ tag เลย
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
ohmohm
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,098



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 13 เมษายน 2011, 18:04:12 »

ต้องการ
String XML แปลงเป็น Object XML
จากนั้นดึง Object XML บางส่วน มาเข้า Array หรือเปล่าครับ
บันทึกการเข้า
UnzO
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,872



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 14 เมษายน 2011, 13:25:24 »

ก็เรียกแบบ array ดิครับ
$items['request']['ItemSearchRequest']['ResponseGroup'][0]

ขอบคุณมากครับ ผมว่าน่าจะใช้แบบนี้น่าจะง่ายสำหรับผมสินะ

ที่อยากทราบคือ เวลาทำเว็บ Amazon กันแต่ละคนนิยมดึงข้อมูลกันแบบไหน เพราะปกติแล้วผมเรียกกันตรงๆ เลย เช่น $item->ItemAttributes->Title อะไรประมาณนี้ เลยมีแนวคิดว่าอยากเอาพวกข้อมูลต่างๆ พวกนี้มาจัดเรียงใหม่ เพื่อเวลาเรียกใช้จะได้สะดวก มีแผนจะปล่อยออกมาเป็น Script ด้วย เลยอยากให้ง่ายสำหรับคนที่ไม่เก่งโปรแกรมหน่ะครับ
ที่ผมวางโครงไว้ก็จะมีแนวทางที่ง่ายที่สุด(เท่าที่ผมจะคิดได้)แยกระบบ Core หลักๆ ของสคริปออกจากตัวแสดงผล คือแยก Core กับ Theme ออก แต่ในส่วน Theme นั้นก็จะมีตัวโค๊ดอยู่ด้วยบางส่วน(เฉพาะส่วนที่ต้องแสดงผล) แต่ก็ไม่อยากให้เขียนภาษาใหม่(ไม่ใช้ Templete Engine) ก็เลยใช้ PHP นี่แหละง่ายดี ทำแบบลูกทุ่งๆตามประสา  Tongue

ปล.ขอโทษนะครับที่ทำให้งง เพราะผมเองก็ยังงงตัวเองเหมือนกัน...
บันทึกการเข้า
ohmohm
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,098



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 17 เมษายน 2011, 13:48:50 »

เพราะเรียก Array แล้วเร็วกว่าเรียก object ที่เป็น XML หรือเปล่า
บันทึกการเข้า
UnzO
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,872



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 18 เมษายน 2011, 21:23:56 »

ที่ผมต้องการคือนำข้อมูลที่ได้มาจัดใหม่ครับ ให้มีมิติที่น้อยลง เพราะฉนั้นความเร็วน่าจะมากกว่าเรียกหลายๆ มิติ
บันทึกการเข้า
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 19 เมษายน 2011, 12:18:39 »

เป็นผมนะ ผมจะใช้ xpath ตั้งแต่ตอนที่มันเป็น XML

หรือ ถ้าอยากใช้เป็น array จริงๆ ผมก็จะใช้ library ที่จำลอง xpath ใน array อาทิเช่น set (CakePHP)
http://book.cakephp.org/view/1501/extract
*แนะนำเลยตัวนี้ เป็น library ที่ทำงานกับ array ได้ขั้นเทพ แงะออกมาจาก Cake เลยก็ได้

หรือถ้าเป็น Json มันก็มีคนเขียน library ที่ทำงานกับ Json แบบ xpath มาอีก
http://goessner.net/articles/JsonPath/

** ข้อเสีย lib พวกนี้ทำงานช้านิดหน่อย ไม่เหมือน xpath ของ XML

ไอ้แบบ array ข้างบน น่าจะเรียกได้ราวๆ นี้ถ้าจะเอา groups



$groups = Set::extract('//ResponseGroup', $response);


นอกจากนี้ ตัว Set ยังใช้ merge, append, remove, find, sort, multisort, distinct อะไรได้อีกสารพัด
« แก้ไขครั้งสุดท้าย: 19 เมษายน 2011, 12:23:00 โดย Tee++; » บันทึกการเข้า

FCUK
คนรักเสียว
*

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

กระทู้: 142



ดูรายละเอียด
« ตอบ #14 เมื่อ: 19 เมษายน 2011, 12:24:25 »

แนะนำลองศึกษา JSON + JQuery อย่างละเอียดดูครับ
บันทึกการเข้า
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #15 เมื่อ: 19 เมษายน 2011, 12:26:23 »

^
^
jQuery ไม่น่าจะมาเกี่ยวอะไรนะครับ
บันทึกการเข้า

nypee
Newbie
*

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

กระทู้: 30



ดูรายละเอียด
« ตอบ #16 เมื่อ: 19 เมษายน 2011, 13:00:09 »

Confirm XPath อีกคน เพราะเค้าเตรียม feature มาให้แล้ว ทั้งการ query, filter, condition
ถ้าอยากได้เป็น Array ก็ใช้ XPath ดึงมาวน for ลง array อีกทีคับ

การแปลง xml ทั้งก้อนเป็น array นอกจากทำยากแล้ว
ผลที่ได้ก็ซับซ้อน (ถ้าจะให้ครบโครงสร้าง) เวลาเอาไปใช้ก็เปลือง resource คับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์