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

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

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

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

กระทู้: 844



ดูรายละเอียด เว็บไซต์
« เมื่อ: 15 กุมภาพันธ์ 2017, 17:24:16 »

สมมต array ชื่อ  result

คือผมอยากเข้าไปแก้  [product_colors] ตรง [color] อะครับ โดยในแต่ละ result  มันจะมี  [product_colors] ไม่เท่ากันครับ

พยามใช้ foreach ก็ยังใช้ไม่เป็นครับ


 
Array
(
    [product_name] => AAAAA
    [product_sizes] => Array
        (
            [ศูนย์] => 35
            [1] => 36
            [2] => 37
            [3] => 38
            [4] => 39
            [5] => 40
        )

    [product_colors] => Array
        (
            [ศูนย์] => Array
                (
                    [color] => เหลือง
                  
                    [size_available] => Array
                        (
                            [ศูนย์] => 36
                            [1] => 39
                            [2] => 40
                        )

                )

            [1] => Array
                (
                    [color] => แดง
                    
                    [size_available] => Array
                        (
                            [ศูนย์] => 35
                            [1] => 36
                            [2] => 37
                            [3] => 38
                            [4] => 39
                        )

                )

            [2] => Array
                (
                    [color] => ขาว
                    
                    [size_available] => Array
                        (
                            [ศูนย์] => 40
                        )

                )

            [3] => Array
                (
                    [color] => ดำ
                    
                    [size_available] => Array
                        (
                            [ศูนย์] => 36
                            [1] => 37
                            [2] => 38
                        )

                )

            [4] => Array
                (
                    [color] => น้ำตาล
                    
                    [size_available] => Array
                        (
                            [ศูนย์] => 36
                            [1] => 38
                            [2] => 39
                        )

                )

            [5] => Array
                (
                    [color] => ฟ้า
                  
                    [size_available] => Array
                        (
                            [ศูนย์] => 37
                            [1] => 38
                            [2] => 39
                        )

                )

            [6] => Array
                (
                    [color] => ม่วง
                    
                    [size_available] => Array
                        (
                            [ศูนย์] => 38
                            [1] => 39
                        )

                )

          

        )


)
« แก้ไขครั้งสุดท้าย: 15 กุมภาพันธ์ 2017, 17:26:32 โดย webbaby » บันทึกการเข้า

sputtaro
สมุนแก๊งเสียว
*

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

กระทู้: 910



ดูรายละเอียด
« ตอบ #1 เมื่อ: 15 กุมภาพันธ์ 2017, 17:40:41 »

ถ้าเป็น array ที่จำนวนค่าภายในไม่แน่แน่อน
ผมจะใช้ประมาณนี้ครับ
1 เช็ค is_array
2. นับจำนวน count(), sizeof() ...
3. วนลูปด้วย for

แต่ไม่รู้จะเป็นคำตอบให้คุณได้มั๊ย

บันทึกการเข้า
webbaby
สมุนแก๊งเสียว
*

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

กระทู้: 844



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 15 กุมภาพันธ์ 2017, 17:45:30 »

ถ้าเป็น array ที่จำนวนค่าภายในไม่แน่แน่อน
ผมจะใช้ประมาณนี้ครับ
1 เช็ค is_array
2. นับจำนวน count(), sizeof() ...
3. วนลูปด้วย for

แต่ไม่รู้จะเป็นคำตอบให้คุณได้มั๊ย



หรอครับ ผมนึกว่ามันใช้ foreach ได้หมดซะอีก
บันทึกการเข้า

sputtaro
สมุนแก๊งเสียว
*

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

กระทู้: 910



ดูรายละเอียด
« ตอบ #3 เมื่อ: 15 กุมภาพันธ์ 2017, 17:59:24 »

foreach ผมใช้กรณี จำนวนที่มีแน่นอนเสมอน่ะครับ
แล้วค่อยวนลูปในส่วนย่อยๆของมันอีกที
เช่น
count product_colors
for ...product_colors_array  ++{
วนลูป ภายใน product_colors_array ด้วย foreach หรือ for อีก จนหมด
}
คงพอเข้าใจนะครับ

********************************

พอดีเห็นคุณบอกว่า จะแก้ไขค่า
ผมว่าสามารถเรียกดูค่าได้เลยนะ
ลองแบบนี้ดูหรือยังครับ
(ไม่รู้คุณใช้การ parse วิธีไหน แต่เอาเป็นแนวแล้วกัน)

กรณี มี product_colors แน่ และมีค่า color 1 ค่าเสมอ

$myarray=$result['product_colors'];
$cm=count($myarray);
for ($i=0; $i<=$cm-1; $i++){
$mycolor=$myarray[$i]['color'];
if(isset($mycolor)){
echo $mycolor;
}
else{
echo 'no color';
}
}

เป็นแนวนะครับ ผมเขียนสดๆ ไม่ได้ทดสอบ
« แก้ไขครั้งสุดท้าย: 15 กุมภาพันธ์ 2017, 20:38:17 โดย sputtaro » บันทึกการเข้า
webbaby
สมุนแก๊งเสียว
*

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

กระทู้: 844



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 15 กุมภาพันธ์ 2017, 21:12:33 »

foreach ผมใช้กรณี จำนวนที่มีแน่นอนเสมอน่ะครับ
แล้วค่อยวนลูปในส่วนย่อยๆของมันอีกที
เช่น
count product_colors
for ...product_colors_array  ++{
วนลูป ภายใน product_colors_array ด้วย foreach หรือ for อีก จนหมด
}
คงพอเข้าใจนะครับ

********************************.
ขอบคุณคับ


พอดีเห็นคุณบอกว่า จะแก้ไขค่า
ผมว่าสามารถเรียกดูค่าได้เลยนะ
ลองแบบนี้ดูหรือยังครับ
(ไม่รู้คุณใช้การ parse วิธีไหน แต่เอาเป็นแนวแล้วกัน)

กรณี มี product_colors แน่ และมีค่า color 1 ค่าเสมอ

$myarray=$result['product_colors'];
$cm=count($myarray);
for ($i=0; $i<=$cm-1; $i++){
$mycolor=$myarray[$i]['color'];
if(isset($mycolor)){
echo $mycolor;
}
else{
echo 'no color';
}
}

เป็นแนวนะครับ ผมเขียนสดๆ ไม่ได้ทดสอบ

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

หน้า: [1]   ขึ้นบน
พิมพ์