หัวข้อ: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: catz001 ที่ 21 กันยายน 2007, 04:42:21 ???
สมมุตินะครับ ผมมีตัวแปร $color=array("green","red","orange") แล้วผมต้องการลบ ค่า red ออกจาก $color ผมจะต้องใช้คำสั่งอะไรหรือครับ(php) หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: ball6847 ที่ 21 กันยายน 2007, 10:16:45 เอามาจาก คู่มือ php.net คับ
อันนี้อันที่คู่มือเค้าสอน ใช้คล้ายๆ substr() แต่ผมไม่แน่ใจนะว่ามีฟังก์ชั่นสำหรับ ลบ value ออกจาก array โดยตรงรึปล่าว โค๊ด:
อันนี้ฟังก์ชั่นจาก user comment เห็นว่าน่าจะง่ายขั้น โค๊ด:
แต่ถ้าให้ง่ายๆ นะคับ โค๊ด:
หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: EThaiZone ที่ 21 กันยายน 2007, 10:34:19 ผมขอตอนกรณีถ้าอยากจะค้นเอาค่า red จากอาเรย์โดยเราไม่รู้ตำแหน่ง เช่นกรณีอาเรย์โดน shuffle
$key = array_search('red', $color); if($key !== FALSE) unset($color[$key]); ลองใช้ดูนะครับ :) หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: amaudy ที่ 21 กันยายน 2007, 10:35:38 ^
^ ^ ตามนั้นครับ แถมให้อีกนิด โค๊ด: <?php หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: EThaiZone ที่ 21 กันยายน 2007, 10:44:31 เวลาใช้ array_search จำเป็นต้องเช็คค่าที่ออกมาใส่สภาพว่าใช่หรือเปล่า
สมมุติว่า $color = array("red", "green", "blue", "yellow"); แล้วถ้าเราค้นค่า red array_search จะคืนค่าเป็น 0 ชนิด integer แต่ถ้าเราค้นไม่เจอ มันจะคืนเป็น FALSE ชนิด boolean ปัญหาจะตามมาเวลาค่าหาไม่เจอเนี่ยแหละ เมื่อก่อนผมเคยเขียนเช็คแค่ ค่าคืนมา != 0 (ใน boolean ก็เท่ากัย false) แต่สุดท้ายมันไม่ตัดค่าแรก จนอ่านใน php.net เจอคนอธิบายกันเยอะ (สงสัยโดนเหมือนกัน 55+) เลยต้องเช็ค !== FALSE ไปเลย เอาทั้งเช็คค่าและชนิดข้อมูลให้ตรงกัน :P หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: ball6847 ที่ 21 กันยายน 2007, 11:36:28 เวลาใช้ array_search จำเป็นต้องเช็คค่าที่ออกมาใส่สภาพว่าใช่หรือเปล่า สมมุติว่า $color = array("red", "green", "blue", "yellow"); แล้วถ้าเราค้นค่า red array_search จะคืนค่าเป็น 0 ชนิด integer แต่ถ้าเราค้นไม่เจอ มันจะคืนเป็น FALSE ชนิด boolean ปัญหาจะตามมาเวลาค่าหาไม่เจอเนี่ยแหละ เมื่อก่อนผมเคยเขียนเช็คแค่ ค่าคืนมา != 0 (ใน boolean ก็เท่ากัย false) แต่สุดท้ายมันไม่ตัดค่าแรก จนอ่านใน php.net เจอคนอธิบายกันเยอะ (สงสัยโดนเหมือนกัน 55+) เลยต้องเช็ค !== FALSE ไปเลย เอาทั้งเช็คค่าและชนิดข้อมูลให้ตรงกัน :P เวงกำ 555+ ทำมัยคนทำฟังก์ชั่น array_search มันไม่ส่งคืนค่าเป็น boolean อ่ะ เหอๆ จะเอา integer จะเอา boolean ก็เอาสักอย่าง แถมคืนค่าเวลา int เป็น 0 อีก เหอๆ มันค่าเท่ากันเลยนะน่ะ แค่โค้ดคุณ Ethaizone สั้นดีคับ เจ๋งเลย หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: tarnroma ที่ 21 กันยายน 2007, 12:15:27 ??? สมมุตินะครับ ผมมีตัวแปร $color=array("green","red","orange") แล้วผมต้องการลบ ค่า red ออกจาก $color ผมจะต้องใช้คำสั่งอะไรหรือครับ(php) จริงๆ จขกท. ต้องการแค่ลบค่าที่ต้องการออกจาก Main Array ซึ่งจริงๆมันก็คือการลบออก ก็ใช้คำสั่ง array_diff ไปเลยคับ สั้นๆ จะลบกี่ตัวก็ทำได้คับ โค๊ด: $color=array("green","red","orange");//Main Array หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: catz001 ที่ 21 กันยายน 2007, 12:53:01 :-* ขอบคุณทุกท่านที่เข้ามาช่วยกันตอบครับ ได้ประโยชน์จากทุกคำตอบที่ตอบมาเลยครับ ทำให้รู้มากกว่าเดิมเยอะเลยครับ :)
หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: EThaiZone ที่ 21 กันยายน 2007, 15:13:23 เวงกำ 555+ ทำมัยคนทำฟังก์ชั่น array_search มันไม่ส่งคืนค่าเป็น boolean อ่ะ เหอๆ จะเอา integer จะเอา boolean ก็เอาสักอย่าง แถมคืนค่าเวลา int เป็น 0 อีก เหอๆ มันค่าเท่ากันเลยนะน่ะ แค่โค้ดคุณ Ethaizone สั้นดีคับ เจ๋งเลย ผมก็ไม่รู้ ตอนแรกผมใช้แบบไม่เช็ค เพราะคิดว่า มันจะ false แล้วคงไม่ตัดอะไร (ตอนนั้นคิดแบบนั้นเลยไม่ใส่ if) เหมือนกะใช้ unset ไม่มีผล ที่ไหนได้ php เข้าใจว่า false (boolean) เป็น 0 (integer) เลยค่าตัวแรกหายทุกทีไป -*- ในส่วน comment หน้านั้นเลยมี หลายคนบอกกันถี่เลย หุๆ array_diff น่าใช้ดีครับ น่าจะสบายกว่าด้วย ปล. ถ้ามีกระทู้ php ในมุมมืด จะมีคนสนปะ ^^' หัวข้อ: Re: ผมจะลบค่าบางค่าในตัวแปร array ต้องใช้คำสั่งอะไรหรอครับ เริ่มหัวข้อโดย: mixture ที่ 27 ตุลาคม 2009, 04:37:38 กำลังหาเรื่องนี้อยู่พอดี ขอบคุณ คุณโจ้มากครับ สำหรับ code ที่แสนสั้นและสะดวก :wanwan017:
|