เพิ่มรายการใหม่ในอาร์เรย์ php PHP: การเพิ่มและลบองค์ประกอบอาร์เรย์ การกำหนดองค์ประกอบในอาร์เรย์
การเพิ่มรายการลงในอาร์เรย์
หากมีอาร์เรย์อยู่ คุณสามารถเพิ่มองค์ประกอบเพิ่มเติมเข้าไปได้ ทำได้โดยตรงโดยใช้ตัวดำเนินการกำหนด (เครื่องหมายเท่ากับ) ในลักษณะเดียวกับการกำหนดค่าให้กับสตริงหรือตัวเลข ในกรณีนี้คุณไม่จำเป็นต้องตั้งค่าคีย์ขององค์ประกอบที่เพิ่มเข้ามา แต่ในกรณีใด ๆ เมื่อเข้าถึงอาร์เรย์คุณต้อง วงเล็บเหลี่ยม... โดยการเพิ่มสองรายการใหม่ในรายการ $ เราเขียน:
$ List = "ลูกแพร์";
$ List = "มะเขือเทศ";
หากไม่มีการระบุคีย์ แต่ละองค์ประกอบจะถูกเพิ่มไปยังอาร์เรย์ที่มีอยู่และจัดทำดัชนีด้วยหมายเลขลำดับถัดไป หากเราเพิ่มองค์ประกอบใหม่ให้กับอาร์เรย์จากส่วนก่อนหน้าซึ่งมีองค์ประกอบที่มีดัชนี 1, 2 และ 3 จากนั้นลูกแพร์จะมีดัชนี 4 และมะเขือเทศจะมี 5 เมื่อคุณตั้งค่าดัชนีอย่างชัดเจนและมีค่าอยู่แล้ว ที่มีอยู่แล้ว ค่าที่มีอยู่ในสถานที่นี้จะหายไปและแทนที่ด้วยค่าใหม่:
$ List = "ลูกแพร์";
$ List = "มะเขือเทศ";
ตอนนี้ค่าขององค์ประกอบที่ดัชนี 4 คือ "มะเขือเทศ" และองค์ประกอบ "ส้ม" ไม่อยู่ที่นั่นอีกต่อไป ฉันไม่แนะนำให้ระบุคีย์เมื่อเพิ่มองค์ประกอบลงในอาร์เรย์ เว้นแต่ว่าคุณต้องการเขียนทับข้อมูลที่มีอยู่โดยเฉพาะ อย่างไรก็ตาม หากใช้สตริงเป็นดัชนี ต้องระบุคีย์เพื่อไม่ให้สูญเสียค่า
เราจะพยายามเพิ่มองค์ประกอบใหม่ให้กับอาร์เรย์โดยเขียนสคริปต์ soups.php ใหม่ ประการแรก โดยการพิมพ์องค์ประกอบดั้งเดิมของอาร์เรย์ จากนั้นองค์ประกอบดั้งเดิมพร้อมกับองค์ประกอบที่เพิ่มเข้ามา เราจะเห็นการเปลี่ยนแปลงที่เกิดขึ้นได้อย่างง่ายดาย เช่นเดียวกับที่คุณสามารถค้นหาความยาวของสตริง (จำนวนอักขระในสตริง) โดยใช้ฟังก์ชัน strlen () การกำหนดจำนวนองค์ประกอบในอาร์เรย์โดยใช้ฟังก์ชัน count () ก็ทำได้ง่ายเช่นกัน:
$ HowMany = นับ ($ Array);
- เปิดไฟล์ soups.php ใน โปรแกรมแก้ไขข้อความ.
- หลังจากเริ่มต้นอาร์เรย์ด้วยฟังก์ชันอาร์เรย์ () ให้เพิ่มรายการต่อไปนี้: $ HowMany = นับ ($ ซุป);
- เพิ่มองค์ประกอบเพิ่มเติมสามรายการในอาร์เรย์ $ ซุป ["วันพฤหัสบดี"] = "ก๋วยเตี๋ยวไก่";
- คำนวณองค์ประกอบในอาร์เรย์ใหม่และพิมพ์ค่านี้ $ HowManyNow = นับ ($ ซุป);
- บันทึกสคริปต์ (รายการ 7.2) อัปโหลดไปยังเซิร์ฟเวอร์และทดสอบในเบราว์เซอร์ (รูป)
พิมพ์ ("อาร์เรย์ประกอบด้วย $ HowMany องค์ประกอบ
\ n ");
ฟังก์ชัน count () จะกำหนดจำนวนองค์ประกอบในอาร์เรย์ $ Soups โดยการกำหนดค่านี้ให้กับตัวแปร คุณสามารถพิมพ์ได้
$ ซุป ["วันศุกร์"] = "มะเขือเทศ";
$ ซุป ["Saturday"] = "ครีมบร็อคโคลี่";
พิมพ์ ("ตอนนี้อาร์เรย์มีองค์ประกอบ $ HowManyNow
\ n ");
รายการ 7.2 คุณสามารถเพิ่มหนึ่งองค์ประกอบโดยตรงในอาร์เรย์โดยการกำหนดค่าให้กับแต่ละองค์ประกอบโดยใช้ตัวดำเนินการที่เหมาะสม ฟังก์ชัน count () สามารถใช้เพื่อค้นหาจำนวนองค์ประกอบในอาร์เรย์
1
2
3
4
5 6 $ ซุป = อาร์เรย์ (
7 "วันจันทร์" => "ซุปหอย",
8 "วันอังคาร" => "พริกขาวไก่",
9 "วันพุธ" => "มังสวิรัติ");
11 พิมพ์ ("อาร์เรย์ประกอบด้วย $ HowMany
องค์ประกอบ
\ n ");
12 $ ซุป ["วันพฤหัสบดี"] = "ก๋วยเตี๋ยวไก่";
13 $ ซุป ["วันศุกร์"] = "มะเขือเทศ";
14 $ ซุป ["Saturday"] = "ครีมของ
บร็อคโคลี ";
15 $ HowManyNow = นับ ($ ซุป);
16 พิมพ์ ("ตอนนี้อาร์เรย์มี
$ HowManyNow องค์ประกอบ
\ n ");
17 ?>
18
19
เปิดตัว PHP 4.0 ฟังก์ชั่นใหม่ช่วยให้คุณสามารถเพิ่มอาร์เรย์หนึ่งไปยังอีกอาร์เรย์หนึ่งได้ การดำเนินการนี้เรียกอีกอย่างว่าการรวมหรือการรวมอาร์เรย์ ฟังก์ชัน array_merge () ถูกเรียกดังนี้:
$ NewArray = array_merge ($ OneArray, $ TwoArray);
คุณสามารถเขียนหน้า soups.php ใหม่ได้โดยใช้ฟังก์ชันนี้ หากคุณใช้เซิร์ฟเวอร์ที่ติดตั้ง PHP 4.0
การรวมสองอาร์เรย์
- เปิดไฟล์ soups.php ในเท็กซ์เอดิเตอร์ หากยังไม่ได้เปิด
- หลังจากเริ่มต้นอาร์เรย์ $ Soups ให้นับองค์ประกอบและพิมพ์ผลลัพธ์ $ HowMany = นับ ($ ซุป);
- เชื่อมอาเรย์ทั้งสองเข้าด้วยกันเป็นหนึ่งเดียว $ TheSoups = array_merge ($ ซุป, $ ซุป2);
- นับองค์ประกอบของอาร์เรย์ใหม่และพิมพ์ผลลัพธ์ $ HowMany3 = นับ ($ TheSoups);
- ปิดเอกสาร PHP และ HTML ?>
- บันทึกไฟล์ (รายการ 7.3) อัปโหลดไปยังเซิร์ฟเวอร์ และทดสอบในเบราว์เซอร์ (รูป)
พิมพ์ ("อาร์เรย์ $ Soups มี $ HowMany องค์ประกอบ
\ n ");
- สร้างอาร์เรย์ที่สอง นับองค์ประกอบ และพิมพ์ผลลัพธ์ด้วย
"วันพฤหัสบดี" => "ก๋วยเตี๋ยวไก่",
"วันศุกร์" => "มะเขือเทศ",
"วันเสาร์" => "ครีมบร็อคโคลี่");
$ HowMany2 = นับ ($ Soups2);
พิมพ์ ("อาร์เรย์ $ Soups2 มีองค์ประกอบ $ HowMany2
\ n ");
ตรวจสอบให้แน่ใจว่าอาร์เรย์อยู่ในลำดับนี้ ($ Soups จากนั้น $ Soups2) นั่นคือ องค์ประกอบวันพฤหัสบดีและวันศุกร์ควรถูกเพิ่มลงในองค์ประกอบวันพุธของวันพุธ และไม่ใช่ในทางกลับกัน
พิมพ์ ("อาร์เรย์ $ TheSoups ประกอบด้วย
- $ HowMany3 องค์ประกอบ
\ n ");
รายการ 7.3 ฟังก์ชัน Array_merge () เป็นฟังก์ชันใหม่ นี่เป็นหนึ่งในฟังก์ชันเพิ่มเติมของ PHP 4.0 สำหรับการทำงานกับอาร์เรย์ การใช้อาร์เรย์ช่วยให้คุณประหยัดเวลาได้มาก
1
2
3
4
5 6 $ ซุป = อาร์เรย์!
7 "วันจันทร์" => "ซุปหอย",
"วันอังคาร" => "พริกขาวไก่",
8 "วันพุธ" => "มังสวิรัติ"
9);
10 $ HowMany = นับ ($ ซุป);
11 พิมพ์ ("อาร์เรย์ $ Soups มี $ HowMany องค์ประกอบ
\ n ");
12 $ Soups2 = อาร์เรย์ (
13 "วันพฤหัสบดี" => "ก๋วยเตี๋ยวไก่",
14 "วันศุกร์" => "มะเขือเทศ",
15 "วันเสาร์" => "ครีมบร็อคโคลี่"
16); .
17 $ HowMany2 = นับ ($ Soups2);
18 พิมพ์ ("อาร์เรย์ $ Soups2 มีองค์ประกอบ $ HowMany2
\ n ");
19 $ TbeSoupe = array_merge ($ ซุป, $ ซุป2);
20 $ HowMany3 = นับ ($ TheSoups);
21 พิมพ์ ("อาร์เรย์ $ TheSoups มีองค์ประกอบ $ HowMany3
\ n ");
22 ?> "
23
24
โปรดใช้ความระมัดระวังเมื่อเพิ่มองค์ประกอบลงในอาร์เรย์โดยตรง วิธีที่ถูกต้องคือ: $ Ar ray = "Add This"; $ Aggau = "Add This"; แต่ถูกต้องดังนี้: $ Aggau = "Add This" ;. หากคุณลืมใส่วงเล็บ ค่าที่เพิ่มเข้ามาจะทำลายอาร์เรย์ที่มีอยู่ เปลี่ยนเป็นสตริงหรือตัวเลขอย่างง่าย
PHP 4.0 มีฟังก์ชันใหม่หลายอย่างสำหรับการทำงานกับอาร์เรย์ ไม่ใช่ทุกข้อที่กล่าวถึงในหนังสือ อย่างไรก็ตาม ข้อมูลทั้งหมดเกี่ยวกับเรื่องนี้มีอยู่ในคู่มือภาษา PHP ซึ่งสามารถพบได้บนเว็บไซต์ PHP ระวังอย่าใช้คุณสมบัติใหม่ที่ไม่ซ้ำกับ PHP 4.0 หากเซิร์ฟเวอร์ของคุณใช้ PHP 3.x
ลองดูวิธีเขียนค่าลงในอาร์เรย์ อาร์เรย์ที่มีอยู่สามารถแก้ไขได้โดยการตั้งค่าอย่างชัดเจน ทำได้โดยการกำหนดค่าให้กับอาร์เรย์
การกำหนดค่าให้กับองค์ประกอบอาร์เรย์จะเหมือนกับการกำหนดค่าให้กับตัวแปร ยกเว้นในวงเล็บเหลี่ยม () ที่เพิ่มหลังชื่อของตัวแปรอาร์เรย์ ดัชนี / คีย์ขององค์ประกอบจะแสดงในวงเล็บเหลี่ยม หากไม่มีการระบุดัชนี / คีย์ PHP จะเลือกดัชนีตัวเลขว่างที่เล็กที่สุดโดยอัตโนมัติ
"ศูนย์", 1 => "หนึ่ง"); $ my_arr = "สอง"; $ my_arr = "สาม"; var_dump ($ my_arr); // การมอบหมายโดยไม่ระบุดัชนี / คีย์ $ my_arr = "four"; $ my_arr = "ห้า"; เสียงสะท้อน "
"; var_dump ($ my_arr);?>
ในการเปลี่ยนค่าเฉพาะ คุณเพียงแค่กำหนดค่าใหม่ให้กับองค์ประกอบที่มีอยู่แล้ว หากต้องการลบองค์ประกอบใด ๆ ของอาร์เรย์ที่มีดัชนี / คีย์ หรือลบอาร์เรย์ออกทั้งหมด ให้ใช้ฟังก์ชัน unset ()
หมายเหตุ: ดังที่กล่าวไว้ข้างต้น หากองค์ประกอบถูกเพิ่มลงในอาร์เรย์โดยไม่ระบุคีย์ PHP จะใช้ค่าคีย์จำนวนเต็มที่ใหญ่ที่สุดก่อนหน้าโดยอัตโนมัติ โดยเพิ่มขึ้น 1 หากยังไม่มีดัชนีจำนวนเต็มในอาร์เรย์ คีย์จะเป็น 0 (ศูนย์).
โปรดทราบว่าค่าคีย์จำนวนเต็มที่ใหญ่ที่สุด ไม่จำเป็นต้องมีอยู่ในอาร์เรย์ในขณะนี้ซึ่งอาจเกิดจากการลบองค์ประกอบอาร์เรย์ หลังจากลบองค์ประกอบแล้ว อาร์เรย์จะไม่ถูกสร้างดัชนีใหม่ ยกตัวอย่างต่อไปนี้เพื่อให้ชัดเจนยิ่งขึ้น:
"; print_r ($ my_arr); // เพิ่มรายการ (โปรดทราบว่าคีย์ใหม่จะเป็น 3 แทนที่จะเป็น 0) $ my_arr = 6; echo"
"; print_r ($ my_arr); // การทำดัชนีใหม่: $ my_arr = array_values ($ my_arr); $ my_arr = 7; echo"
"; print_r ($ my_arr);?>
ตัวอย่างนี้ใช้สองฟังก์ชันใหม่ ได้แก่ print_r () และ array_values () Array_values () ส่งคืนอาร์เรย์ที่จัดทำดัชนี (สร้างดัชนีอาร์เรย์ที่ส่งคืนใหม่ด้วยดัชนีตัวเลข) และ print_r ทำงานเหมือน var_dump แต่ส่งออกอาร์เรย์ในลักษณะที่อ่านง่ายกว่า
ตอนนี้เราสามารถพิจารณาวิธีที่สามในการสร้างอาร์เรย์:
ตัวอย่างแสดงให้เห็นวิธีที่สามในการสร้างอาร์เรย์ ถ้ายังไม่ได้สร้างอาร์เรย์ $ วันทำงาน อาร์เรย์จะถูกสร้างขึ้น อย่างไรก็ตาม ไม่แนะนำให้สร้างอาร์เรย์ประเภทนี้ เนื่องจากหากมีการสร้างตัวแปร $ วันทำงานแล้วและมีค่าอยู่ การทำเช่นนี้อาจนำไปสู่ผลลัพธ์ที่ไม่คาดคิดจากสคริปต์ได้
หากคุณมีข้อสงสัยว่าตัวแปรเป็นอาร์เรย์หรือไม่ ให้ใช้ฟังก์ชัน is_array ตัวอย่างเช่น การตรวจสอบสามารถทำได้ดังนี้:
"; $ no =" Regular string "; echo is_array ($ no)?" Array ":" ไม่ใช่อาร์เรย์ ";?>
PHPรองรับชนิดข้อมูลสเกลาร์และคอมโพสิต ในบทความนี้ เราจะพูดถึงประเภทคอมโพสิตประเภทใดประเภทหนึ่ง: อาร์เรย์ อาร์เรย์คือชุดของค่าข้อมูล ซึ่งจัดเป็นชุดที่เรียงลำดับของคู่คีย์-ค่า
บทความนี้กล่าวถึงการสร้างอาร์เรย์ การเพิ่มรายการในอาร์เรย์ มีฟังก์ชันในตัวมากมายที่ทำงานร่วมกับอาร์เรย์ใน PHP,เพราะอาร์เรย์เป็นเรื่องธรรมดาและมีประโยชน์ในการใช้งาน ตัวอย่างเช่น หากคุณต้องการส่งอีเมลไปยังที่อยู่อีเมลมากกว่าหนึ่งที่อยู่ คุณสามารถเก็บที่อยู่อีเมลไว้ในอาร์เรย์แล้ววนซ้ำผ่านอาร์เรย์ ส่งข้อความไปยังที่อยู่อีเมลที่นำมาจากอาร์เรย์
อาร์เรย์ที่จัดทำดัชนีและเชื่อมโยง
อาร์เรย์ใน PHP มีสองประเภท: จัดทำดัชนีและเชื่อมโยง คีย์อาร์เรย์ที่ทำดัชนีเป็นจำนวนเต็มเริ่มต้นที่ 0 อาร์เรย์ที่ทำดัชนีจะใช้เมื่อคุณต้องการตำแหน่งเฉพาะในอาร์เรย์ แอสโซซิเอทีฟอาเรย์ทำงานเหมือนสองคอลัมน์ของตาราง คอลัมน์แรกคือคีย์ที่ใช้เข้าถึงค่า (คอลัมน์ที่สอง)
PHPภายในจัดเก็บอาร์เรย์ทั้งหมดเป็นอาร์เรย์ที่เชื่อมโยง ดังนั้นความแตกต่างเพียงอย่างเดียวระหว่างอาร์เรย์ที่เชื่อมโยงและที่จัดทำดัชนีคือคีย์ปรากฏขึ้น ฟังก์ชันบางอย่างมีจุดประสงค์เพื่อใช้กับอาร์เรย์ที่จัดทำดัชนีเป็นหลัก เนื่องจากถือว่าคีย์ของคุณเป็นจำนวนเต็มตามลำดับโดยเริ่มจาก 0 ในทั้งสองกรณี คีย์จะไม่ซ้ำกัน นั่นคือ คุณไม่สามารถมีองค์ประกอบสององค์ประกอบที่มีคีย์เดียวกันได้ ไม่ว่า คีย์คือสตริงหรือจำนวนเต็ม
วี PHPอาร์เรย์มีการเรียงลำดับภายในขององค์ประกอบที่ไม่ขึ้นกับคีย์และค่า และมีฟังก์ชันที่คุณสามารถใช้เพื่อสำรวจอาร์เรย์ตามลำดับภายในนี้
การกำหนดองค์ประกอบในอาร์เรย์
คุณสามารถเข้าถึงค่าเฉพาะจากอาร์เรย์โดยใช้ชื่ออาร์เรย์ตามด้วยคีย์องค์ประกอบ (บางครั้งเรียกว่าดัชนี) ในวงเล็บเหลี่ยม:
$ อายุ ["เฟร็ด"]; $ แสดง;
คีย์อาจเป็นสตริงหรือจำนวนเต็ม ค่าสตริงเป็นตัวเลข (ไม่มีศูนย์นำหน้า) จะถือเป็นจำนวนเต็ม ทางนี้, $ arrayและ $ อาร์เรย์ ['3']อ้างถึงองค์ประกอบเดียวกัน แต่ $ อาร์เรย์ ['03 ']หมายถึงองค์ประกอบอื่น ตัวเลขติดลบสามารถใช้เป็นคีย์ได้ แต่ไม่ได้ระบุตำแหน่งจากจุดสิ้นสุดของอาร์เรย์ เช่น in เพิร์ล
ไม่จำเป็นต้องใส่คีย์ในเครื่องหมายคำพูด ตัวอย่างเช่น $ อาร์เรย์ ['เฟรด']ชอบ $ อารัตยังถือว่าดีสไตล์ PHPใช้คำพูดเสมอ หากดัชนีไม่มีเครื่องหมายคำพูด PHP จะใช้ค่าคงที่เป็นดัชนี:
กำหนด ("ดัชนี", 5); อาร์เรย์สะท้อน $; // จะคืนค่า $ array ไม่ใช่ $ array ["index"];
หากคุณต้องการแทนที่ตัวเลขในดัชนี คุณต้องทำดังนี้
$ อายุ ["โคลน $ หมายเลข"]; // จะกลับมาเช่น $ age ["Clone5"];
อย่างไรก็ตาม อย่าใส่คีย์ในเครื่องหมายคำพูดในกรณีต่อไปนี้:
// พิมพ์ผิด "สวัสดี $ คน [" ชื่อ "]"; พิมพ์ "สวัสดี $ คน [" ชื่อ "]"; // พิมพ์ที่ถูกต้อง "สวัสดี $ บุคคล";
การจัดเก็บข้อมูลในอาร์เรย์
เมื่อคุณพยายามเก็บค่าในอาร์เรย์ อาร์เรย์จะถูกสร้างขึ้นโดยอัตโนมัติหากไม่มีอยู่มาก่อน แต่เมื่อคุณพยายามดึงค่าจากอาร์เรย์ที่ไม่ได้กำหนดไว้ อาร์เรย์จะไม่ถูกสร้างขึ้น ตัวอย่างเช่น:
// $ ไม่ได้กำหนดที่อยู่จนกว่าจะถึงตอนนี้ echo $ ที่อยู่; // ไม่มีที่อยู่ echo $; // ไม่มีที่อยู่ $ = "spam@cyberpromo.net"; ที่อยู่ echo $; // พิมพ์ "อาร์เรย์"
คุณสามารถใช้การกำหนดอย่างง่ายเพื่อเริ่มต้นอาร์เรย์ในโปรแกรม:
ที่อยู่ $ = "spam@cyberpromo.net"; $ ที่อยู่ = "abuse@example.com"; $ ที่อยู่ = "root@example.com"; // ...
เราได้ประกาศอาร์เรย์ดัชนีที่มีดัชนีจำนวนเต็มเริ่มต้นที่ 0
อาร์เรย์ที่เชื่อมโยง:
ราคา $ ["ปะเก็น"] = 15.29; ราคา $ ["ล้อ"] = 75.25; ราคา $ ["ยาง"] = 50.00; // ...
วิธีที่ง่ายกว่าในการเริ่มต้นอาร์เรย์คือการใช้ construct อาร์เรย์ ()ซึ่งสร้างอาร์เรย์จากอาร์กิวเมนต์:
$ ที่อยู่ = อาร์เรย์ ("spam@cyberpromo.net", "abuse@example.com", "root@example.com");
เพื่อสร้าง associative array โดยใช้ อาร์เรย์ (),ใช้ => อักขระแยกดัชนีจากค่า:
$ ราคา = อาร์เรย์ ("ปะเก็น" => 15.29, "ล้อ" => 75.25, "ยาง" => 50.00);
ให้ความสนใจกับการใช้ช่องว่างและการจัดตำแหน่ง เราสามารถจัดกลุ่มโค้ดได้ แต่จะอธิบายได้น้อยกว่านี้:
$ ราคา = อาร์เรย์ ("ปะเก็น" => 15.29, "ล้อ" => 75.25, "ยาง" => 50.00);
ในการสร้างอาร์เรย์ว่าง คุณต้องเรียกการก่อสร้าง อาร์เรย์ ()ไม่มีข้อโต้แย้ง:
$ ที่อยู่ = อาร์เรย์ ();
คุณสามารถระบุคีย์เริ่มต้นในอาร์เรย์แล้วระบุรายการค่าได้ ค่าจะถูกป้อนลงในอาร์เรย์โดยเริ่มจากคีย์แล้วเพิ่มขึ้น:
$ days = array (1 => "วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์", "วันอาทิตย์"); // 2 คือวันอังคาร 3 คือวันพุธ เป็นต้น
หากดัชนีเริ่มต้นเป็นสตริง ดัชนีที่ตามมาจะกลายเป็นจำนวนเต็มโดยเริ่มที่ 0 ดังนั้นโค้ดต่อไปนี้อาจเป็นข้อผิดพลาด:
$ whoops = array ("วันศุกร์" => "ดำ", "น้ำตาล", "เขียว"); // เช่นเดียวกับ $ whoops = array ("Friday" => "Black", 0 => "Brown", 1 => "Green");
การเพิ่มองค์ประกอบใหม่ต่อท้ายอาร์เรย์
ในการแทรกค่าหลายค่าที่ส่วนท้ายของอาร์เรย์ที่จัดทำดัชนีที่มีอยู่ ให้ใช้ไวยากรณ์:
$ family = array ("เฟรด", "วิลมา"); // $ family = "Fred" $ family = "ก้อนกรวด"; // $ family = "ก้อนกรวด"
โครงสร้างนี้อนุมานว่าดัชนีอาร์เรย์เป็นตัวเลขและกำหนดดัชนีตัวเลขถัดไปที่มีอยู่ให้กับองค์ประกอบโดยเริ่มต้นที่ 0 การพยายามเพิ่มองค์ประกอบลงในอาเรย์ที่เชื่อมโยงมักเป็นความผิดพลาดของโปรแกรมเมอร์ แต่ PHPจะเพิ่มองค์ประกอบใหม่ด้วยดัชนีตัวเลข (เริ่มต้นที่ 0) โดยไม่มีคำเตือน:
$ คน = อาร์เรย์ ("name" => "Fred"); // $ person ["name"] = "Fred"; $ คน = "วิลมา"; // $ คน = "วิลมา"
ในขั้นตอนนี้ เราจะจบส่วนเบื้องต้นของการทำงานกับอาร์เรย์ใน PHP ฉันรอคุณในบทความถัดไป
มีฟังก์ชันและตัวดำเนินการมากมายสำหรับการแปลงอาร์เรย์ใน php: ชุดของฟังก์ชันสำหรับการทำงานกับอาร์เรย์
มีหลายวิธีในการเพิ่มอาร์เรย์ในอาร์เรย์โดยใช้ php และทั้งหมดนี้มีประโยชน์สำหรับแต่ละกรณี
"โอเปอเรเตอร์ +"
นี่เป็นวิธีที่ง่ายแต่ยุ่งยาก:
$ c = $ a + $ b
เพิ่มเฉพาะคีย์ที่ไม่ได้อยู่ในอาร์เรย์ $ ในกรณีนี้ อิลิเมนต์จะถูกต่อท้ายอาร์เรย์
นั่นคือ ถ้าไม่มีคีย์จากอาร์เรย์ $ b ในอาร์เรย์ $ ดังนั้นองค์ประกอบที่มีคีย์นี้จะถูกเพิ่มไปยังอาร์เรย์ที่เป็นผลลัพธ์
หากอาร์เรย์ $ มีองค์ประกอบที่มีคีย์ดังกล่าวอยู่แล้ว ค่าของอาร์เรย์จะไม่เปลี่ยนแปลง
กล่าวอีกนัยหนึ่งผลรวมเปลี่ยนจากการเปลี่ยนตำแหน่งของเงื่อนไข: $ a + $ b! = $ B + $ a - สิ่งนี้ควรค่าแก่การจดจำ
ตอนนี้สำหรับตัวอย่างที่มีรายละเอียดเพิ่มเติมเพื่อแสดงสิ่งนี้:
$ arr1 = ["a" => 1, "b" => 2]; $ arr2 = ["b" => 3, "c" => 4]; var_export ($ arr1 + $ arr2); // array (// "a" => 1, // "b" => 2, // "c" => 4, //) var_export ($ arr2 + $ arr1); // array (// "b" => 3, // "c" => 4, // "a" => 1, //)
Array_merge () ฟังก์ชัน
คุณสามารถใช้ฟังก์ชันนี้ได้ดังนี้:
$ ผล = array_merge ($ arr1, $ arr2)
มันรีเซ็ตดัชนีตัวเลขและแทนที่สตริง เหมาะอย่างยิ่งสำหรับการต่ออาร์เรย์ที่จัดทำดัชนีด้วยตัวเลขตั้งแต่สองตัวขึ้นไป:
หากอาร์เรย์อินพุตมีคีย์สตริงเหมือนกัน ค่าที่ตามมาแต่ละค่าจะแทนที่ค่าก่อนหน้า อย่างไรก็ตาม หากอาร์เรย์มีคีย์ตัวเลขเหมือนกัน ค่าที่กล่าวถึงสุดท้ายจะไม่แทนที่ค่าเดิม แต่จะผนวกกับส่วนท้ายของอาร์เรย์
ฟังก์ชัน Array_merge_recursive
ทำสิ่งเดียวกับ array_merge แต่ยังวนซ้ำผ่านแต่ละสาขาของอาร์เรย์และทำเช่นเดียวกันกับลูกหลาน
Array_replace () ฟังก์ชั่น
แทนที่องค์ประกอบของอาร์เรย์ด้วยองค์ประกอบของอาร์เรย์ที่ส่งผ่านอื่น
Array_replace_recursive () ฟังก์ชั่น
เช่นเดียวกับ array_replace จะประมวลผลทุกสาขาของอาร์เรย์เท่านั้น
array_pad
เพิ่มองค์ประกอบหลายรายการในอาร์เรย์
ไวยากรณ์:
Array array_pad (อินพุตอาร์เรย์, int pad_size, pad_value แบบผสม)
Array_pad () ส่งคืนสำเนาของอาร์เรย์อินพุตซึ่งมีการเพิ่มองค์ประกอบด้วย pad_values เพื่อให้จำนวนองค์ประกอบในอาร์เรย์ผลลัพธ์เท่ากับ pad_size
หาก pad_size> 0 องค์ประกอบจะถูกเพิ่มที่ส่วนท้ายของอาร์เรย์และ if<0 - то в начало.
หากค่า pad_size น้อยกว่าองค์ประกอบในอาร์เรย์อินพุตดั้งเดิม จะไม่มีการเพิ่ม และฟังก์ชันจะส่งคืนอาร์เรย์อินพุตดั้งเดิม
ตัวอย่างการใช้ฟังก์ชัน array_pad ()
$ arr = อาร์เรย์ (12, 10, 4);
$ ผล = array_pad ($ arr, 5, 0);
// $ ผลลัพธ์ = อาร์เรย์ (12, 10, 4, 0, 0);
$ ผล = array_pad ($ arr, -7, -1);
// $ ผลลัพธ์ = อาร์เรย์ (-1, -1, -1, -1, 12, 10, 4)
$ ผล = array_pad ($ arr, 2, "noop");
// จะไม่เพิ่ม
array_map
การใช้ฟังก์ชันแบบกำหนดเองกับองค์ประกอบทั้งหมดของอาร์เรย์ที่ระบุ
ไวยากรณ์:
Array array_map (การโทรกลับแบบผสม, อาร์เรย์ arr1 [, อาร์เรย์ ...])
ฟังก์ชัน array_map () ส่งคืนอาร์เรย์ที่มีองค์ประกอบของอาร์เรย์ที่ระบุทั้งหมดหลังจากประมวลผลโดยฟังก์ชันเรียกกลับที่กำหนดเอง
จำนวนพารามิเตอร์ที่ส่งไปยังฟังก์ชันที่ผู้ใช้กำหนดจะต้องตรงกับจำนวนอาร์เรย์ที่ส่งไปยังฟังก์ชัน array_map ()
ตัวอย่างการใช้ฟังก์ชัน array_map () การประมวลผลหนึ่ง array
ส่งคืน $ n * $ n * $ n;
}
$ a = อาร์เรย์ (1, 2, 3, 4, 5);
$ b = array_map ("คิวบ์", $ a);
print_r ($ b);
?>
อาร์เรย์ (
=> 1
=> 8
=> 27
=> 64
=> 125
)
ตัวอย่างการใช้ฟังก์ชัน array_map () การประมวลผลหลายอาร์เรย์
ส่งคืน "หมายเลข $ n ในภาษาสเปนคือ $ m";
}
ฟังก์ชั่น map_Spanish ($ n, $ m) (
อาร์เรย์ส่งคืน ($ n => $ m);
}
$ a = อาร์เรย์ (1, 2, 3, 4, 5);
$ b = อาร์เรย์ ("uno", "dos", "tres", "cuatro", "cinco");
$ c = array_map ("show_Spanish", $ a, $ b);
print_r ($ c);
$ d = array_map ("map_Spanish", $ a, $ b);
print_r ($ d);
?>
ตัวอย่างข้างต้นจะแสดงผลต่อไปนี้:
// พิมพ์ $ cArray (
=> หมายเลข 1 ในภาษาสเปนคือ uno
=> หมายเลข 2 ในภาษาสเปนคือ dos
=> หมายเลข 3 ในภาษาสเปนคือ tres
=> หมายเลข 4 ในภาษาสเปนคือ cuatro
=> หมายเลข 5 ในภาษาสเปนคือ cinco
)
// พิมพ์ $ dArray (
=> Array
=> uno
)
=> Array
=> ดอส
)
=> Array
=> tres
)
=> Array
=> cuatro
)
=> Array
=> cinco
)
โดยทั่วไป ฟังก์ชัน array_map () จะถูกนำไปใช้กับอาร์เรย์ที่มีมิติเดียวกัน หากอาร์เรย์มีความยาวต่างกัน อาร์เรย์ที่เล็กกว่าจะถูกเสริมด้วยองค์ประกอบที่มีค่าว่าง
ควรสังเกตว่าถ้าคุณระบุ null แทนชื่อของฟังก์ชันการประมวลผล อาร์เรย์ของอาร์เรย์จะถูกสร้างขึ้น
ตัวอย่างการใช้ฟังก์ชัน array_map () การสร้างอาร์เรย์ของอาร์เรย์
$ b = อาร์เรย์ ("หนึ่ง", "สอง", "สาม", "สี่", "ห้า");
$ c = อาร์เรย์ ("uno", "dos", "tres", "cuatro", "cinco");
$ d = array_map (null, $ a, $ b, $ c);
print_r ($ d);
?>
ตัวอย่างข้างต้นจะแสดงผลต่อไปนี้:
อาร์เรย์ (
=> Array
=> 1
=> หนึ่ง
=> uno
)
=> Array
=> 2
=> สอง
=> ดอส
)
=> Array
=> 3
=> สาม
=> tres
)
=> Array
=> 4
=> สี่
=> cuatro
)
=> Array
=> 5
=> ห้า
=> cinco
)
ฟังก์ชันที่รองรับโดย PHP 4> = 4.0.6, PHP 5
array_pop
ดึงและลบองค์ประกอบสุดท้ายของอาร์เรย์
ไวยากรณ์:
ผสม array_pop (อาร์เรย์ arr);
ฟังก์ชัน array_pop () ดึงองค์ประกอบสุดท้ายจากอาร์เรย์ arr และส่งคืนองค์ประกอบดังกล่าว จากนั้นจึงลบออก ด้วยฟังก์ชันนี้ เราสามารถสร้างโครงสร้างที่คล้ายกับสแต็กได้ ถ้าอาร์เรย์ arr ว่างเปล่า หรือไม่ใช่อาร์เรย์ ฟังก์ชันจะส่งคืนสตริง NULL ที่ว่างเปล่า
หลังจากใช้ฟังก์ชัน array_pop () แล้ว เคอร์เซอร์อาร์เรย์จะถูกตั้งค่าเป็นจุดเริ่มต้น
ตัวอย่างการใช้ฟังก์ชัน array_pop ()
ผลไม้ $ = array_pop ($ กอง);
print_r ($ กอง);
print_r ($ ผลไม้);
?>
ตัวอย่างจะแสดงผลต่อไปนี้:
อาร์เรย์ (
=> ส้ม
=> กล้วย
=> apple
)
ฟังก์ชันนี้รองรับโดย PHP 4, PHP 5
array_push
เพิ่มองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบที่ส่วนท้ายของอาร์เรย์
ไวยากรณ์:
Int array_push (array arr, var1 แบบผสม [, var2 แบบผสม, ..])
Array_push () เพิ่ม var1, var2 ฯลฯ ให้กับ arr เธอกำหนดดัชนีตัวเลขให้กับพวกเขา เช่นเดียวกับที่ทำกับดัชนีมาตรฐาน
หากคุณต้องการเพิ่มเพียงองค์ประกอบเดียว การใช้ตัวดำเนินการนี้อาจง่ายกว่า:
Array_push ($ Arr, 1,000); // เรียกใช้ฟังก์ชัน $ Arr = 100; //เหมือนเดิมแต่สั้นกว่า
ตัวอย่างการใช้ฟังก์ชัน array_push ()
array_push ($ stack, "apple", "raspberry");
print_r ($ กอง);
?>
ตัวอย่างจะแสดงผลต่อไปนี้:
อาร์เรย์ (
=> ส้ม
=> กล้วย
=> apple
=> ราสเบอร์รี่
)
โปรดทราบว่า array_push () รับอาร์เรย์เหมือนสแต็กและเพิ่มองค์ประกอบที่ส่วนท้ายเสมอ
ฟังก์ชันนี้รองรับโดย PHP 4, PHP 5
array_shift
ดึงและลบองค์ประกอบแรกในอาร์เรย์
ไวยากรณ์:
ผสม array_shift (อาร์เรย์ arr)
ฟังก์ชัน Array_shift () ดึงองค์ประกอบแรกของอาร์เรย์ arr และส่งคืน มันใกล้เคียงกับ array_pop (),
แต่จะได้รับเฉพาะค่าแรกเริ่ม ไม่ใช่องค์ประกอบสุดท้าย และยังสร้าง "การเขย่า" ที่ค่อนข้างแข็งแกร่งของอาร์เรย์ทั้งหมดด้วย: ท้ายที่สุด เมื่อแยกองค์ประกอบแรก คุณต้องปรับดัชนีตัวเลขทั้งหมดขององค์ประกอบที่เหลือทั้งหมด , ตั้งแต่ องค์ประกอบที่ตามมาทั้งหมดของอาร์เรย์จะถูกเลื่อนไปข้างหน้าหนึ่งตำแหน่ง คีย์สตริงของอาร์เรย์จะไม่เปลี่ยนแปลง
ถ้า arr ว่างเปล่าหรือไม่ใช่อาร์เรย์ ฟังก์ชันจะคืนค่า NULL
หลังจากใช้ฟังก์ชันนี้ ตัวชี้อาร์เรย์จะย้ายไปที่จุดเริ่มต้น
ตัวอย่างการใช้ฟังก์ชัน array_shift ()
$ ผลไม้ = array_shift ($ กอง);
print_r ($ กอง);
?>
ตัวอย่างนี้จะแสดงผลต่อไปนี้:
อาร์เรย์ (
=> กล้วย
=> apple
=> ราสเบอร์รี่
)
และตัวแปร $ fruit จะมีค่าเป็น "orange"
ฟังก์ชันนี้รองรับโดย PHP 4, PHP 5
array_unshift
เพิ่มค่าตั้งแต่หนึ่งค่าขึ้นไปที่จุดเริ่มต้นของอาร์เรย์
ไวยากรณ์:
Int array_unshift (รายการ arr, var1 แบบผสม [, var2 แบบผสม, ...])
Array_unshift () เพิ่มค่า var ที่ส่งผ่านไปยังจุดเริ่มต้นของอาร์เรย์ arr ลำดับขององค์ประกอบใหม่ในอาร์เรย์จะยังคงอยู่ ดัชนีตัวเลขทั้งหมดของอาร์เรย์จะมีการเปลี่ยนแปลงเพื่อให้เริ่มต้นที่ศูนย์ ดัชนีสตริงทั้งหมดในอาร์เรย์จะไม่เปลี่ยนแปลง
ฟังก์ชันจะคืนค่าจำนวนองค์ประกอบใหม่ในอาร์เรย์
ตัวอย่างการใช้ฟังก์ชัน array_unshift ()
array_unshift ($ คิว, "แอปเปิ้ล", "ราสเบอร์รี่");
?>
ตอนนี้ตัวแปรคิว $ จะมีองค์ประกอบต่อไปนี้:
อาร์เรย์ (
=> apple
=> ราสเบอร์รี่
=> ส้ม
=> กล้วย
)
ฟังก์ชันนี้รองรับโดย PHP 4, PHP 5
array_unique
ลบค่าที่ซ้ำกันในอาร์เรย์
ไวยากรณ์:
Array array_unique (อาร์เรย์ arr)
Array_unique () ส่งคืนอาร์เรย์ของค่าที่ไม่ซ้ำกันทั้งหมดใน arr พร้อมกับคีย์โดยลบค่าที่ซ้ำกันทั้งหมด คีย์แรกที่พบ => คู่ค่าจะถูกวางไว้ในอาร์เรย์ผลลัพธ์ ดัชนีจะถูกบันทึกไว้
ตัวอย่างการใช้ฟังก์ชัน array_unique ()
"เขียว", "แดง", "b" =>
"เขียว", "น้ำเงิน", "แดง");
print_r ($ ผล);
?>
ตัวอย่างจะแสดงผลต่อไปนี้:
อาร์เรย์ (
[a] => สีเขียว
=> สีแดง
=> สีน้ำเงิน
)
ตัวอย่างการใช้ฟังก์ชัน array_unique () การเปรียบเทียบประเภทข้อมูล
$ ผลลัพธ์ = array_unique (อินพุต $);
var_dump ($ ผล);
?>
ตัวอย่างจะแสดงผลต่อไปนี้:
อาร์เรย์ (2) (
=> อินท์ (4)
=> สตริง (1) "3"
}
ฟังก์ชันที่รองรับโดย PHP 4> = 4.0.1, PHP 5
array_chunk
ฟังก์ชันจะแบ่งอาร์เรย์ออกเป็นส่วนๆ
ไวยากรณ์:
Array array_chunk (array arr, ขนาด int [, bool prepare_keys])
ฟังก์ชัน Array_chunk () แบ่งอาร์เรย์ arr เดิมออกเป็นหลายอาร์เรย์ โดยกำหนดความยาวด้วยขนาดตัวเลข หากมิติของอาร์เรย์ดั้งเดิมไม่สามารถหารด้วยชิ้นส่วนที่มีขนาดตรงกันทุกประการ อาร์เรย์สุดท้ายจะมีมิติที่ต่ำกว่า
ฟังก์ชัน array_chunk () ส่งคืนอาร์เรย์หลายมิติ ดัชนีที่เริ่มต้นจาก 0 ถึงจำนวนอาร์เรย์ที่ได้รับ และค่าคืออาร์เรย์ที่ได้รับจากการแยก
พารามิเตอร์ save_keys ทางเลือกระบุว่าจะเก็บคีย์ของอาร์เรย์ดั้งเดิมไว้หรือไม่ หากพารามิเตอร์นี้เป็นเท็จ (ค่าเริ่มต้น) ดัชนีของอาร์เรย์ที่เป็นผลลัพธ์จะถูกระบุเป็นตัวเลขที่เริ่มต้นจากศูนย์ หากพารามิเตอร์เป็นจริง คีย์ของอาร์เรย์ดั้งเดิมจะยังคงอยู่
ตัวอย่างการใช้ฟังก์ชัน array_chunk ()
$ array = array ("องค์ประกอบที่ 1",
"องค์ประกอบที่ 2",
"องค์ประกอบที่ 3",
"องค์ประกอบที่ 4"
"องค์ประกอบที่ 5");
print_r (array_chunk ($ อาร์เรย์ 2));
print_r (array_chunk ($ array, 2, TRUE));
ตัวอย่างจะแสดงผลต่อไปนี้:
อาร์เรย์ (
=> Array
=> องค์ประกอบที่ 1
=> องค์ประกอบที่ 2
)
=> Array
=> องค์ประกอบที่ 3
=> องค์ประกอบที่ 4
)
=> Array
=> องค์ประกอบที่ 5
)
)
อาร์เรย์ (
=> Array
=> องค์ประกอบที่ 1
=> องค์ประกอบที่ 2
)
=> Array
=> องค์ประกอบที่ 3
=> องค์ประกอบที่ 4
)
=> Array
=> องค์ประกอบที่ 5
)
ฟังก์ชันที่รองรับโดย PHP 4> = 4.2.0, PHP 5
array_fill
ฟังก์ชันจะเติมอาร์เรย์ด้วยค่าเฉพาะ
ไวยากรณ์:
Array array_fill (int start_index, int num, ค่าผสม)
ฟังก์ชัน array_fill () ส่งคืนอาร์เรย์ที่มีค่าขนาด num ที่ระบุในพารามิเตอร์ value โดยเริ่มจากองค์ประกอบที่ระบุในพารามิเตอร์ start_index
ตัวอย่างการใช้ array_diff_uassoc ():
print_r ($ a);
?>
ตัวอย่างจะแสดงผลต่อไปนี้:
อาร์เรย์ (
=> กล้วย
=> กล้วย
=> กล้วย
=> กล้วย
=> กล้วย
=> กล้วย
)
ฟังก์ชันที่รองรับโดย PHP 4> = 4.2.0, PHP 5
array_filter
ฟังก์ชันนี้ใช้ตัวกรองกับอาร์เรย์โดยใช้ฟังก์ชันที่กำหนดเอง
ไวยากรณ์:
Array array_filter (อินพุตอาร์เรย์ [, โทรกลับ])
ฟังก์ชัน array_filter () ส่งคืนอาร์เรย์ที่มีค่าในอาร์เรย์อินพุต กรองตามผลลัพธ์ของฟังก์ชันเรียกกลับที่กำหนดเอง
หากอาร์เรย์อินพุตดั้งเดิมเป็นอาเรย์ที่เชื่อมโยง ดัชนีจะถูกเก็บไว้ในอาร์เรย์ผลลัพธ์
ตัวอย่างการใช้ฟังก์ชัน array_filter ()
ผลตอบแทน ($ var% 2 == 1);
}
ฟังก์ชันแม้แต่ ($ var) (
ผลตอบแทน ($ var% 2 == 0);
}
$ array1 = อาร์เรย์ ("a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5);
$ array2 = อาร์เรย์ (6, 7, 8, 9, 10, 11, 12);
echo "คี่: n";
print_r (array_filter ($ array1, "คี่"));
echo "คู่: n";
t_r (array_filter ($ array2, "คู่"));
?>
ตัวอย่างจะแสดงผลต่อไปนี้:
คี่: อาร์เรย์ (
[a] => 1
[c] => 3
[e] => 5
คู่: อาร์เรย์ (
=> 6
=> 8
=> 10
=> 12
)
เป็นที่น่าสังเกตว่าแทนที่จะระบุชื่อฟังก์ชันการกรอง คุณสามารถระบุอาร์เรย์ที่มีการอ้างอิงไปยังวัตถุและชื่อของเมธอดได้
นอกจากนี้ยังเป็นที่น่าสังเกตว่าเมื่อประมวลผลอาร์เรย์โดยใช้ฟังก์ชัน array_filter () จะไม่สามารถเปลี่ยนแปลงได้: เพิ่ม ลบองค์ประกอบ หรือศูนย์อาร์เรย์ เนื่องจาก นี้อาจนำไปสู่การทำงานที่ไม่ถูกต้องของฟังก์ชัน
ฟังก์ชันที่รองรับโดย PHP 4> = 4.0.6, PHP 5