การเพิ่มที่ส่วนท้ายของอาร์เรย์ php
บ้าน
มีฟังก์ชันและตัวดำเนินการมากมายสำหรับการแปลงอาร์เรย์ใน PHP: ชุดของฟังก์ชันสำหรับการทำงานกับอาร์เรย์ มีหลายวิธีในการเพิ่มอาร์เรย์ให้กับอาร์เรย์เมื่อใด php ช่วยด้วย
และทั้งหมดนี้สามารถเป็นประโยชน์ได้เป็นรายกรณี
"โอเปอเรเตอร์ +"
นี่เป็นวิธีง่ายๆ แต่ร้ายกาจ:
$c = $a + $b
ด้วยวิธีนี้ เฉพาะคีย์เหล่านั้นเท่านั้นที่จะถูกเพิ่มซึ่งไม่ได้อยู่ในอาร์เรย์ $a ในกรณีนี้ องค์ประกอบต่างๆ จะถูกผนวกเข้ากับส่วนท้ายของอาร์เรย์
นั่นคือ หากไม่มีคีย์จากอาร์เรย์ $b ในอาร์เรย์ $a องค์ประกอบที่มีคีย์นี้จะถูกเพิ่มลงในอาร์เรย์ผลลัพธ์
หากอาร์เรย์ $a มีองค์ประกอบที่มีคีย์ดังกล่าวอยู่แล้ว ค่าของมันจะยังคงไม่เปลี่ยนแปลง
กล่าวอีกนัยหนึ่ง การเปลี่ยนตำแหน่งของเงื่อนไขจะเปลี่ยนผลรวม: $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); //อาร์เรย์ (// "b" => 3, // "c" => 4, // "a" => 1, //)
ฟังก์ชั่น array_merge()
คุณสามารถใช้ฟังก์ชันนี้ได้ดังนี้:
$result = array_merge($arr1, $arr2)
จะรีเซ็ตดัชนีตัวเลขและแทนที่ดัชนีสตริง เหมาะสำหรับการเชื่อมอาร์เรย์ตั้งแต่สองตัวขึ้นไปเข้ากับดัชนีตัวเลข:
หากอาร์เรย์อินพุตมีคีย์สตริงเหมือนกัน แต่ละค่าที่ตามมาจะแทนที่ค่าก่อนหน้า อย่างไรก็ตาม หากอาร์เรย์มีคีย์ตัวเลขเหมือนกัน ค่าที่กล่าวถึงสุดท้ายจะไม่แทนที่ค่าเดิม แต่จะถูกเพิ่มที่ส่วนท้ายของอาร์เรย์
ฟังก์ชัน array_merge_recursive
ทำสิ่งเดียวกันกับ array_merge ยกเว้นว่ามันจะวนซ้ำผ่านแต่ละสาขาของอาเรย์และทำเช่นเดียวกันกับลูก ๆ
ฟังก์ชั่น array_replace()
แทนที่องค์ประกอบอาร์เรย์ด้วยองค์ประกอบของอาร์เรย์อื่นที่ส่งผ่าน
array_replace_recursive() ฟังก์ชัน
เหมือนกับ array_replace แต่ประมวลผลสาขาทั้งหมดของอาร์เรย์
array_pad
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
ไวยากรณ์:
อาร์เรย์ array_pad (อินพุตอาร์เรย์, int pad_size, pad_value แบบผสม)
ฟังก์ชัน array_pad() ส่งคืนสำเนาของอาร์เรย์อินพุตซึ่งมีการเพิ่มองค์ประกอบที่มี pad_values ไว้ เพื่อให้จำนวนองค์ประกอบในอาร์เรย์ผลลัพธ์คือ pad_size<0 - то в начало.
หากค่าของ pad_size น้อยกว่าองค์ประกอบในอาร์เรย์อินพุตดั้งเดิม จะไม่มีการบวกเกิดขึ้น และฟังก์ชันจะส่งคืนอาร์เรย์อินพุตดั้งเดิม
ตัวอย่างการใช้ฟังก์ชัน array_pad():
$arr = อาร์เรย์(12, 10, 4);
$result = array_pad($arr, 5, 0);
// $result = array(12, 10, 4, 0, 0);
$result = array_pad($arr, -7, -1);
// $result = array(-1, -1, -1, -1, 12, 10, 4)
$result = array_pad($arr, 2, "นูป");
// จะไม่เพิ่ม
array_map
ใช้ฟังก์ชันที่กำหนดเองกับองค์ประกอบทั้งหมดของอาร์เรย์ที่ระบุ
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
Array array_map (การโทรกลับแบบผสม, array arr1 [, array ...])
ฟังก์ชัน array_map() ส่งคืนอาร์เรย์ที่มีองค์ประกอบของอาร์เรย์ที่ระบุทั้งหมดหลังจากประมวลผลโดยฟังก์ชันเรียกกลับของผู้ใช้
จำนวนพารามิเตอร์ที่ส่งไปยังฟังก์ชันที่ผู้ใช้กำหนดจะต้องตรงกับจำนวนอาร์เรย์ที่ส่งไปยัง array_map()
ตัวอย่างการใช้ฟังก์ชัน array_map(): การประมวลผลอาร์เรย์เดียว
ส่งคืน $n*$n*$n;
}
$a = อาร์เรย์(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($ข);
?>
อาร์เรย์(
=> 1
=> 8
=> 27
=> 64
=> 125
)
ตัวอย่างการใช้ฟังก์ชัน array_map(): กำลังประมวลผลหลายอาร์เรย์
return "ตัวเลข $n ในภาษาสเปนคือ $m";
}
ฟังก์ชั่น map_Spanish($n, $m) (
อาร์เรย์ส่งคืน ($n => $m);
}
$a = อาร์เรย์(1, 2, 3, 4, 5);
$b = array("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_map() จะใช้กับอาร์เรย์ที่มีขนาดเท่ากัน ถ้าอาร์เรย์มี ความยาวที่แตกต่างกันจากนั้นองค์ประกอบที่เล็กกว่าจะเสริมด้วยองค์ประกอบที่มีค่าว่าง
ควรสังเกตว่าหากคุณระบุ null แทนชื่อของฟังก์ชันการประมวลผล อาร์เรย์ของอาร์เรย์จะถูกสร้างขึ้น
ตัวอย่างการใช้ฟังก์ชัน array_map(): การสร้างอาร์เรย์ของอาร์เรย์
$b = array("หนึ่ง", "สอง", "สาม", "สี่", "ห้า");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
ตัวอย่างที่กำหนดจะแสดงผลต่อไปนี้:
อาร์เรย์(
=> อาร์เรย์
=> 1
=> หนึ่ง
=> อูโน่
)
=> อาร์เรย์
=> 2
=> สอง
=> ดอส
)
=> อาร์เรย์
=> 3
=> สาม
=> ทริ
)
=> อาร์เรย์
=> 4
=> สี่
=> กัวโตร
)
=> อาร์เรย์
=> 5
=> ห้า
=> ซินโก
)
ฟังก์ชั่นที่รองรับโดย PHP 4 >= 4.0.6, PHP 5
array_pop
ดึงข้อมูลและลบองค์ประกอบสุดท้ายของอาร์เรย์
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
ผสม array_pop (อาร์เรย์ arr);
ฟังก์ชัน array_pop() จะแสดงองค์ประกอบสุดท้ายจากอาร์เรย์ arr แล้วส่งคืน โดยลบออกในภายหลัง ด้วยฟังก์ชันนี้ เราสามารถสร้างโครงสร้างที่มีลักษณะคล้ายสแต็กได้ ถ้าอาร์เรย์ arr ว่างเปล่าหรือไม่ใช่อาร์เรย์ ฟังก์ชันจะส่งกลับสตริงว่าง NULL
หลังจากใช้ฟังก์ชัน array_pop() แล้ว เคอร์เซอร์อาร์เรย์จะถูกตั้งค่าไว้ที่จุดเริ่มต้น
ตัวอย่างการใช้ฟังก์ชัน array_pop():
$fruits = array_pop($สแต็ค);
print_r($กอง);
print_r($ผลไม้);
?>
ตัวอย่างจะแสดงผลดังต่อไปนี้:
อาร์เรย์(
=> สีส้ม
=> กล้วย
=> แอปเปิ้ล
)
ฟังก์ชั่นที่รองรับโดย PHP 4, PHP 5
array_push
เพิ่มองค์ประกอบตั้งแต่หนึ่งรายการขึ้นไปที่ส่วนท้ายของอาร์เรย์
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
Int array_push(อาร์เรย์ arr, ผสม var1 [, ผสม var2, ..])
ฟังก์ชัน array_push() เพิ่มองค์ประกอบ var1, var2 ฯลฯ ให้กับอาร์เรย์ arr โดยจะกำหนดดัชนีตัวเลขให้กับพวกเขา เช่นเดียวกับที่ทำกับมาตรฐาน
หากคุณต้องการเพิ่มเพียงองค์ประกอบเดียว การใช้โอเปอเรเตอร์นี้อาจง่ายกว่า:
Array_push($อาร์,1,000); // เรียกใช้ฟังก์ชัน$Arr=100; //เหมือนกันแต่สั้นกว่า
ตัวอย่างการใช้ฟังก์ชัน array_push():
array_push($สแต็ค, "แอปเปิ้ล", "ราสเบอร์รี่");
print_r($กอง);
?>
ตัวอย่างจะแสดงผลดังต่อไปนี้:
อาร์เรย์(
=> สีส้ม
=> กล้วย
=> แอปเปิ้ล
=> ราสเบอร์รี่
)
โปรดทราบว่าฟังก์ชัน array_push() จะถือว่าอาร์เรย์เป็นแบบสแต็กและเพิ่มองค์ประกอบที่ส่วนท้ายเสมอ
ฟังก์ชั่นที่รองรับโดย PHP 4, PHP 5
array_shift
ดึงข้อมูลและลบองค์ประกอบแรกของอาร์เรย์
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
ผสม array_shift(อาร์เรย์ arr)
ฟังก์ชัน array_shift() รับองค์ประกอบแรกของอาร์เรย์ arr แล้วส่งคืน มันคล้ายกับ array_pop() มาก
แต่จะได้รับเฉพาะการเริ่มต้นเท่านั้น ไม่ใช่องค์ประกอบสุดท้าย และยังสร้าง "การสั่นไหว" ที่ค่อนข้างรุนแรงของอาเรย์ทั้งหมด ท้ายที่สุด เมื่อแยกองค์ประกอบแรก คุณจะต้องปรับดัชนีตัวเลขทั้งหมดขององค์ประกอบที่เหลือทั้งหมด เพราะ องค์ประกอบที่ตามมาทั้งหมดของอาร์เรย์จะถูกเลื่อนไปข้างหน้าหนึ่งตำแหน่ง คีย์อาร์เรย์สตริงไม่เปลี่ยนแปลง
ถ้า arr ว่างเปล่าหรือไม่ใช่อาร์เรย์ ฟังก์ชันจะส่งกลับค่า NULL
หลังจากใช้ฟังก์ชันนี้ ตัวชี้อาร์เรย์จะถูกย้ายไปยังจุดเริ่มต้น
ตัวอย่างการใช้ฟังก์ชัน array_shift():
$fruit = array_shift($สแต็ค);
print_r($กอง);
?>
ตัวอย่างนี้จะส่งออกดังต่อไปนี้:
อาร์เรย์(
=> กล้วย
=> แอปเปิ้ล
=> ราสเบอร์รี่
)
และตัวแปร $fruit จะมีค่าเป็น "สีส้ม"
ฟังก์ชั่นที่รองรับโดย PHP 4, PHP 5
array_unshift
เพิ่มค่าตั้งแต่หนึ่งค่าขึ้นไปที่จุดเริ่มต้นของอาร์เรย์
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
Int array_unshift (รายการ arr, var1 แบบผสม [, var2 แบบผสม ... ])
ฟังก์ชัน array_unshift() จะเพิ่มค่า var ที่ส่งผ่านไปยังจุดเริ่มต้นของอาร์เรย์ arr ลำดับขององค์ประกอบใหม่ในอาร์เรย์จะยังคงอยู่ ดัชนีดิจิทัลทั้งหมดของอาร์เรย์จะถูกเปลี่ยนเพื่อให้เริ่มจากศูนย์ ดัชนีสตริงทั้งหมดของอาร์เรย์ไม่มีการเปลี่ยนแปลง
ฟังก์ชันส่งคืนจำนวนองค์ประกอบใหม่ในอาร์เรย์
ตัวอย่างการใช้ฟังก์ชัน array_unshift():
array_unshift($คิว, "แอปเปิ้ล", "ราสเบอร์รี่");
?>
ตอนนี้ตัวแปร $queue จะมีองค์ประกอบดังต่อไปนี้:
อาร์เรย์(
=> แอปเปิ้ล
=> ราสเบอร์รี่
=> สีส้ม
=> กล้วย
)
ฟังก์ชั่นที่รองรับโดย PHP 4, PHP 5
array_unique
ลบค่าที่ซ้ำกันในอาร์เรย์
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
อาร์เรย์ array_unique(อาร์เรย์ arr)
ฟังก์ชัน array_unique() ส่งคืนอาร์เรย์ที่ประกอบด้วยค่าที่ไม่ซ้ำกันทั้งหมดในอาร์เรย์ arr พร้อมกับคีย์ โดยการลบค่าที่ซ้ำกันทั้งหมด คู่คีย์ => ค่าแรกที่พบจะถูกวางไว้ในอาร์เรย์ผลลัพธ์ ดัชนีจะถูกเก็บรักษาไว้
ตัวอย่างการใช้ฟังก์ชัน array_unique():
"เขียว", "แดง", "b" =>
"เขียว", "น้ำเงิน", "แดง");
print_r($ผลลัพธ์);
?>
ตัวอย่างจะแสดงผลดังต่อไปนี้:
อาร์เรย์(
[a] => สีเขียว
=>สีแดง
=> สีฟ้า
)
ตัวอย่างการใช้ฟังก์ชัน array_unique(): การเปรียบเทียบประเภทข้อมูล
$result = array_unique($อินพุต);
var_dump($ผลลัพธ์);
?>
ตัวอย่างจะแสดงผลดังต่อไปนี้:
อาร์เรย์(2) (
=> int(4)
=> สตริง (1) "3"
}
ฟังก์ชั่นที่รองรับโดย PHP 4 >= 4.0.1, PHP 5
array_chunk
ฟังก์ชั่นแบ่งอาร์เรย์ออกเป็นส่วน ๆ
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
Array array_chunk(อาร์เรย์ arr, ขนาด int [, bool allowance_keys])
ฟังก์ชัน array_chunk() จะแยกอาร์เรย์ arr ดั้งเดิมออกเป็นหลายอาร์เรย์ ซึ่งความยาวจะระบุด้วยขนาดตัวเลข หากขนาดของอาร์เรย์ดั้งเดิมไม่สามารถหารด้วยขนาดของชิ้นส่วนได้ครบถ้วน อาร์เรย์สุดท้ายจะมีมิติที่เล็กกว่า
ฟังก์ชัน array_chunk() ส่งคืน อาร์เรย์หลายมิติซึ่งดัชนีเริ่มต้นจาก 0 ถึงจำนวนอาร์เรย์ผลลัพธ์และค่าคืออาร์เรย์ที่ได้รับจากการแบ่งพาร์ติชัน
พารามิเตอร์ preserv_keys ทางเลือกระบุว่าควรรักษาคีย์ของอาร์เรย์ดั้งเดิมไว้หรือไม่ หากพารามิเตอร์นี้เป็นเท็จ (ค่าเริ่มต้น) ดัชนีของอาร์เรย์ผลลัพธ์จะถูกระบุด้วยตัวเลขที่เริ่มต้นจากศูนย์ หากพารามิเตอร์เป็นจริง คีย์ของอาร์เรย์ดั้งเดิมจะยังคงอยู่
ตัวอย่างการใช้ฟังก์ชัน array_chunk()
$array = array("องค์ประกอบที่ 1",
"องค์ประกอบที่ 2"
"องค์ประกอบที่ 3"
"องค์ประกอบที่ 4"
"องค์ประกอบที่ 5");
print_r(array_chunk($อาร์เรย์, 2));
print_r(array_chunk($อาร์เรย์, 2, TRUE));
ตัวอย่างจะแสดงผลดังต่อไปนี้:
อาร์เรย์(
=> อาร์เรย์
=> องค์ประกอบที่ 1
=> องค์ประกอบที่ 2
)
=> อาร์เรย์
=> องค์ประกอบที่ 3
=> องค์ประกอบที่ 4
)
=> อาร์เรย์
=> องค์ประกอบที่ 5
)
)
อาร์เรย์(
=> อาร์เรย์
=> องค์ประกอบที่ 1
=> องค์ประกอบที่ 2
)
=> อาร์เรย์
=> องค์ประกอบที่ 3
=> องค์ประกอบที่ 4
)
=> อาร์เรย์
=> องค์ประกอบที่ 5
)
ฟังก์ชั่นที่รองรับโดย PHP 4 >= 4.2.0, PHP 5
array_fill
ฟังก์ชันจะเติมอาร์เรย์ด้วยค่าเฉพาะ
เพิ่มองค์ประกอบหลายอย่างให้กับอาร์เรย์
อาร์เรย์ array_fill (int start_index, int num, ค่าผสม)
ฟังก์ชัน array_fill() ส่งคืนอาร์เรย์ที่มีค่าที่ระบุในพารามิเตอร์ค่าขนาด num โดยเริ่มต้นด้วยองค์ประกอบที่ระบุในพารามิเตอร์ 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 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = อาร์เรย์(6, 7, 8, 9, 10, 11, 12);
เสียงสะท้อน "คี่:n";
print_r(array_filter($array1, "คี่"));
สะท้อน "แม้แต่: n";
t_r(array_filter($array2, "คู่"));
?>
ตัวอย่างจะแสดงผลดังต่อไปนี้:
คี่:อาร์เรย์(
[ก] => 1
[ค] => 3
[จ] => 5
คู่:อาร์เรย์(
=> 6
=> 8
=> 10
=> 12
)
เป็นที่น่าสังเกตว่าแทนที่จะระบุชื่อของฟังก์ชันการกรอง คุณสามารถระบุอาร์เรย์ที่มีการอ้างอิงถึงวัตถุและชื่อของวิธีการได้
เป็นที่น่าสังเกตว่าเมื่อประมวลผลอาร์เรย์ด้วยฟังก์ชัน array_filter() จะไม่สามารถเปลี่ยนแปลงได้: เพิ่ม ลบองค์ประกอบ หรือรีเซ็ตอาร์เรย์ เนื่องจาก สิ่งนี้อาจนำไปสู่การทำงานของฟังก์ชั่นที่ไม่ถูกต้อง
ฟังก์ชั่นที่รองรับโดย PHP 4 >= 4.0.6, PHP 5
มาดูวิธีการเขียนค่าลงในอาร์เรย์กัน อาร์เรย์ที่มีอยู่สามารถแก้ไขได้โดยการตั้งค่าไว้อย่างชัดเจน ทำได้โดยการกำหนดค่าให้กับอาร์เรย์
การดำเนินการกำหนดค่าให้กับองค์ประกอบอาร์เรย์จะเหมือนกับการดำเนินการกำหนดค่าให้กับตัวแปร ยกเว้นวงเล็บเหลี่ยม () ที่เพิ่มไว้หลังชื่อตัวแปรอาร์เรย์ ดัชนี/คีย์ขององค์ประกอบจะแสดงอยู่ในวงเล็บเหลี่ยม หากไม่มีการระบุดัชนี/คีย์ PHP จะเลือกดัชนีตัวเลขว่างที่เล็กที่สุดโดยอัตโนมัติ
"ศูนย์", 1 => "หนึ่ง");
$my_arr = "สอง";
$my_arr = "สาม";
var_dump($my_arr);
// การมอบหมายโดยไม่ระบุดัชนี/คีย์ $my_arr = "four"; $my_arr = "ห้า"; เสียงสะท้อน " อาจเกิดจากการลบองค์ประกอบอาร์เรย์ หลังจากที่องค์ประกอบถูกลบออกแล้ว อาร์เรย์จะไม่ถูกสร้างดัชนีใหม่ ลองใช้ตัวอย่างต่อไปนี้เพื่อให้ชัดเจนยิ่งขึ้น:
"; 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 แต่เอาต์พุตอาร์เรย์ในรูปแบบที่อ่านง่ายขึ้น
ตอนนี้เรามาดูวิธีที่สามในการสร้างอาร์เรย์:
ตัวอย่างนี้แสดงให้เห็นวิธีที่สามในการสร้างอาร์เรย์ หากยังไม่ได้สร้างอาร์เรย์ $weekdays ก็จะถูกสร้างขึ้น อย่างไรก็ตาม ไม่แนะนำให้สร้างอาร์เรย์ประเภทนี้ เนื่องจากหากมีการสร้างตัวแปร $weekdays แล้วและมีค่าไว้ อาจทำให้เกิดผลลัพธ์ที่ไม่คาดคิดจากสคริปต์
หากคุณสงสัยว่าตัวแปรเป็นอาร์เรย์หรือไม่ ให้ใช้ฟังก์ชัน is_array ตัวอย่างเช่น การตรวจสอบสามารถทำได้ดังนี้:
"; $no = "regular string"; echo is_array($no) ? "Array" : "ไม่ใช่อาร์เรย์"; ?>
PHPรองรับประเภทข้อมูลสเกลาร์และคอมโพสิต ในบทความนี้ เราจะพูดถึงประเภทคอมโพสิตประเภทใดประเภทหนึ่ง: อาร์เรย์ อาร์เรย์คือชุดของค่าข้อมูลที่จัดเป็นชุดลำดับของคู่คีย์-ค่า
บทความนี้กล่าวถึงการสร้างอาร์เรย์โดยการเพิ่มองค์ประกอบให้กับอาร์เรย์ มีฟังก์ชันในตัวมากมายที่ทำงานร่วมกับอาร์เรย์ได้ PHPเพราะอาร์เรย์เป็นเรื่องธรรมดาและมีประโยชน์ในการใช้งาน ตัวอย่างเช่น หากคุณต้องการส่งอีเมลไปยังที่อยู่มากกว่าหนึ่งแห่ง อีเมลคุณสามารถจัดเก็บที่อยู่อีเมลในอาร์เรย์แล้ววนซ้ำในอาร์เรย์ โดยส่งข้อความไปยังที่อยู่อีเมลที่นำมาจากอาร์เรย์
อาร์เรย์ที่จัดทำดัชนีและเชื่อมโยง
อาร์เรย์ใน PHP มีสองประเภท: ดัชนีและการเชื่อมโยง คีย์ของอาร์เรย์ที่จัดทำดัชนีเป็นจำนวนเต็มเริ่มต้นจาก 0 อาร์เรย์ที่จัดทำดัชนีจะใช้เมื่อคุณต้องการตำแหน่งเฉพาะในอาร์เรย์ อาร์เรย์แบบเชื่อมโยงมีลักษณะเหมือนสองคอลัมน์ในตาราง คอลัมน์แรกคือคีย์ ซึ่งใช้ในการเข้าถึงค่า (คอลัมน์ที่สอง)
PHPจัดเก็บอาร์เรย์ทั้งหมดภายในเป็นอาร์เรย์แบบเชื่อมโยง ดังนั้นข้อแตกต่างเพียงอย่างเดียวระหว่างอาร์เรย์แบบเชื่อมโยงและแบบจัดทำดัชนีคือคีย์จะปรากฏขึ้น ฟังก์ชันบางอย่างมีไว้เพื่อใช้กับอาร์เรย์ที่จัดทำดัชนีเป็นหลัก เนื่องจากฟังก์ชันเหล่านี้ถือว่าคีย์ของคุณเป็นจำนวนเต็มตามลำดับโดยเริ่มที่ 0 ในทั้งสองกรณี คีย์จะไม่ซ้ำกัน นั่นคือ คุณไม่สามารถมีสององค์ประกอบที่มีคีย์เดียวกันได้ ไม่ว่าคีย์นั้นจะเป็นหรือไม่ก็ตาม เป็นสตริงหรือจำนวนเต็ม
ใน PHPอาร์เรย์มีลำดับภายในขององค์ประกอบที่ไม่ขึ้นกับคีย์และค่า และมีฟังก์ชันที่สามารถใช้เพื่อสำรวจอาร์เรย์ตามลำดับภายในนี้
การกำหนดองค์ประกอบในอาร์เรย์
คุณสามารถเข้าถึงค่าเฉพาะจากอาร์เรย์ได้โดยใช้ชื่ออาร์เรย์ตามด้วยคีย์องค์ประกอบ (บางครั้งเรียกว่าดัชนี) ในวงเล็บเหลี่ยม:
$อายุ["เฟร็ด"]; $แสดง;
คีย์อาจเป็นสตริงหรือจำนวนเต็มก็ได้ ค่าสตริงที่เป็นตัวเลข (ไม่มีศูนย์นำหน้า) จะถือเป็นจำนวนเต็ม ดังนั้น, $อาร์เรย์และ $อาร์เรย์['3']อ้างถึงองค์ประกอบเดียวกันแต่ $อาร์เรย์['03']หมายถึงองค์ประกอบอื่น ตัวเลขติดลบยังสามารถใช้เป็นคีย์ได้ แต่ไม่ได้ระบุตำแหน่งจากจุดสิ้นสุดของอาร์เรย์ เช่นเดียวกับใน ภาษาเพิร์ล
ไม่จำเป็นต้องเขียนคีย์ในเครื่องหมายคำพูด ตัวอย่างเช่น, $array['เฟร็ด']ชอบ $อารารัต.แต่ก็ถือว่ามีสไตล์ดี PHPใช้เครื่องหมายคำพูดเสมอ หากดัชนีไม่มีเครื่องหมายคำพูด PHP จะใช้ค่าคงที่เป็นดัชนี:
กำหนด ("ดัชนี",5); สะท้อน $array; // จะคืนค่า $array ไม่ใช่ $array["index"];
หากคุณต้องการแทนที่ตัวเลขลงในดัชนี คุณต้องทำดังนี้
$อายุ["โคลน$number"]; // จะกลับมา เช่น $age["Clone5"];
อย่างไรก็ตาม อย่าอ้างอิงคีย์เข้ามา กรณีถัดไป:
// พิมพ์ไม่ถูกต้อง "สวัสดี $person["name"]"; พิมพ์ "สวัสดี $person["name"]"; // แก้ไขการพิมพ์ "สวัสดี $person";
การจัดเก็บข้อมูลในอาร์เรย์
เมื่อคุณพยายามจัดเก็บค่าในอาร์เรย์ อาร์เรย์จะถูกสร้างขึ้นโดยอัตโนมัติหากไม่มีอยู่ก่อนหน้านี้ แต่เมื่อคุณพยายามดึงค่าจากอาร์เรย์ที่ไม่ได้ถูกกำหนดไว้ อาร์เรย์จะไม่ถูกสร้างขึ้น ตัวอย่างเช่น:
// $addresses ไม่ได้ถูกกำหนดไว้จนกระทั่งตอนนี้ echo $addresses; // ไม่มีอะไรสะท้อน $addresses; // ไม่มีอะไร $addresses = " [ป้องกันอีเมล]"; echo $addresses; // พิมพ์ "Array"
คุณสามารถใช้การมอบหมายง่ายๆ เพื่อเริ่มต้นอาร์เรย์ในโปรแกรม:
$ที่อยู่ = " [ป้องกันอีเมล]"; $ที่อยู่ = " [ป้องกันอีเมล]"; $ที่อยู่ = " [ป้องกันอีเมล]"; // ...
เราประกาศอาร์เรย์ดัชนีที่มีดัชนีจำนวนเต็มเริ่มต้นที่ 0
อาร์เรย์ที่เชื่อมโยง:
$ราคา["ปะเก็น"] = 15.29; $ราคา["ล้อ"] = 75.25; $price["ยาง"] = 50.00; -
วิธีที่ง่ายกว่าในการเริ่มต้นอาร์เรย์คือการใช้โครงสร้าง อาร์เรย์()ซึ่งสร้างอาร์เรย์จากอาร์กิวเมนต์:
$addresses = อาร์เรย์(" [ป้องกันอีเมล]", "[ป้องกันอีเมล]", "[ป้องกันอีเมล]");
เพื่อสร้าง อาร์เรย์ที่เชื่อมโยงโดยใช้ อาร์เรย์()ใช้ => สัญลักษณ์ที่แยกดัชนีออกจากค่า:
$price = array("ปะเก็น" => 15.29, "ล้อ" => 75.25, "ยาง" => 50.00);
ใส่ใจกับการใช้ช่องว่างและการจัดตำแหน่ง เราสามารถจัดกลุ่มโค้ดได้ แต่จะชัดเจนน้อยกว่า:
$price = array("ปะเก็น"=>15.29,"ล้อ"=>75.25,"ยาง"=>50.00);
ในการสร้างอาร์เรย์ว่าง คุณต้องเรียกโครงสร้าง อาร์เรย์()โดยไม่มีข้อโต้แย้ง:
$addresses = อาร์เรย์();
คุณสามารถระบุคีย์เริ่มต้นในอาร์เรย์และรายการค่าได้ ค่าจะถูกป้อนลงในอาร์เรย์โดยเริ่มจากคีย์แล้วเพิ่มขึ้น:
$days = array(1 => "วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์", "วันอาทิตย์"); // 2 คือวันอังคาร 3 คือวันพุธ ฯลฯ
หากดัชนีเริ่มต้นเป็นสตริง ดัชนีที่ตามมาจะกลายเป็นจำนวนเต็ม โดยเริ่มต้นที่ 0 ดังนั้นโค้ดต่อไปนี้อาจเป็นข้อผิดพลาด:
$whoops = array("วันศุกร์" => "ดำ", "น้ำตาล", "เขียว"); // เช่นเดียวกับ $whoops = array("Friday" => "Black", 0 => "Brown", 1 => "Green");
การเพิ่มองค์ประกอบใหม่ต่อท้ายอาร์เรย์
หากต้องการแทรกค่าหลายค่าที่ส่วนท้ายของอาร์เรย์ที่จัดทำดัชนีที่มีอยู่ ให้ใช้ไวยากรณ์:
$family = array("เฟร็ด", "วิลมา"); // $family = "เฟร็ด" $family = "ก้อนกรวด"; // $ครอบครัว = "ก้อนกรวด"
โครงสร้างนี้ถือว่าดัชนีอาร์เรย์เป็นตัวเลขและกำหนดดัชนีตัวเลขถัดไปที่มีอยู่ให้กับองค์ประกอบโดยเริ่มต้นที่ 0 การพยายามเพิ่มองค์ประกอบให้กับอาร์เรย์ที่เชื่อมโยงนั้นเกือบจะเป็นข้อผิดพลาดของโปรแกรมเมอร์เสมอ แต่ PHPจะเพิ่มองค์ประกอบใหม่ด้วยดัชนีตัวเลข (เริ่มจาก 0) โดยไม่มีคำเตือน:
$person = array("name" => "Fred"); // $person["name"] = "เฟรด"; $person = "วิลมา"; // $person = "วิลมา"
ในขั้นตอนนี้ เราจะมาจบส่วนเบื้องต้นของการทำงานกับอาร์เรย์ใน PHP กัน ฉันหวังว่าจะได้พบคุณในบทความถัดไป
การเพิ่มองค์ประกอบให้กับอาร์เรย์
หากมีอาร์เรย์อยู่ คุณสามารถเพิ่มองค์ประกอบเพิ่มเติมเข้าไปได้ ซึ่งทำได้โดยตรงโดยใช้ตัวดำเนินการกำหนด (เครื่องหมายเท่ากับ) ในลักษณะเดียวกับการกำหนดค่าให้กับสตริงหรือตัวเลข ในกรณีนี้คุณไม่จำเป็นต้องระบุคีย์ขององค์ประกอบที่เพิ่ม แต่ในกรณีใด ๆ เมื่อเข้าถึงอาร์เรย์คุณต้องมี- เพิ่มสององค์ประกอบใหม่ให้กับ $List เราจะเขียน:
$List = "ลูกแพร์";
$List = "มะเขือเทศ";
หากไม่ได้ระบุคีย์ แต่ละองค์ประกอบจะถูกเพิ่มในอาร์เรย์ที่มีอยู่และจัดทำดัชนีด้วยเลขลำดับถัดไป หากเราเพิ่มองค์ประกอบใหม่ลงในอาร์เรย์จากส่วนก่อนหน้าซึ่งมีองค์ประกอบที่มีดัชนี 1, 2 และ 3 ลูกแพร์ก็จะมีดัชนี 4 และมะเขือเทศก็จะมีดัชนี 5 เมื่อคุณระบุดัชนีอย่างชัดเจนและค่าของมันก็คือ มีอยู่แล้ว ค่าที่มีอยู่ในตำแหน่งนั้นจะหายไปและแทนที่ด้วยค่าใหม่:
$List = "ลูกแพร์";
$List = "มะเขือเทศ";
ตอนนี้ค่าขององค์ประกอบที่มีดัชนี 4 คือ "มะเขือเทศ" และองค์ประกอบ "ส้ม" ไม่อยู่ที่นั่นอีกต่อไป ฉันขอแนะนำว่าอย่าระบุคีย์เมื่อเพิ่มองค์ประกอบลงในอาร์เรย์ เว้นแต่ว่าคุณต้องการเขียนทับข้อมูลที่มีอยู่โดยเฉพาะ อย่างไรก็ตาม หากใช้สตริงเป็นดัชนี จะต้องระบุคีย์เพื่อไม่ให้สูญเสียค่า
เราจะพยายามเพิ่มองค์ประกอบใหม่ให้กับอาเรย์โดยเขียนสคริปต์ของ Soups.php ใหม่ โดยการพิมพ์องค์ประกอบดั้งเดิมของอาเรย์ก่อน จากนั้นจึงพิมพ์องค์ประกอบดั้งเดิมพร้อมกับองค์ประกอบที่เพิ่มเข้ามา เราจะสามารถเห็นการเปลี่ยนแปลงที่เกิดขึ้นได้อย่างง่ายดาย
เช่นเดียวกับที่คุณสามารถค้นหาความยาวของสตริง (จำนวนอักขระที่มีอยู่) โดยใช้ฟังก์ชัน strlen() การระบุจำนวนองค์ประกอบในอาร์เรย์โดยใช้ฟังก์ชัน count() ก็ทำได้ง่ายเช่นกัน:
- $HowMany = จำนวน($Array); เปิดไฟล์ Soups.php ใน.
- โปรแกรมแก้ไขข้อความ หลังจากเตรียมใช้งานอาร์เรย์โดยใช้ฟังก์ชัน array() แล้ว ให้เพิ่มรายการต่อไปนี้:
- ฟังก์ชัน count() จะกำหนดจำนวนองค์ประกอบในอาร์เรย์ $Soups โดยการกำหนดค่านี้ให้กับตัวแปร จึงสามารถพิมพ์ได้ เพิ่มองค์ประกอบเพิ่มเติมสามรายการให้กับอาร์เรย์
- $Soups["Saturday"] = "ครีมบรอกโคลี"; นับองค์ประกอบในอาร์เรย์และพิมพ์ค่านี้
- \n");
$HowMany = จำนวน ($ซุป);
print("อาร์เรย์มีองค์ประกอบ $HowMany
\n");
$Soups["Thursday"] = "บะหมี่ไก่";
$ซุป["วันศุกร์"] = "มะเขือเทศ";
$HowManyNow = จำนวน ($ซุป);
print("ตอนนี้อาร์เรย์มีองค์ประกอบ $HowManyNow
บันทึกสคริปต์ (รายการ 7.2) อัปโหลดไปยังเซิร์ฟเวอร์และทดสอบในเบราว์เซอร์ (รูปที่)
1
2
3
4
5 การใช้อาร์เรย์
6 $ซุป = อาเรย์(
7 "วันจันทร์"=>"ซุปหอย",
8 "วันอังคาร"=>"พริกไก่ขาว",
9 "วันพุธ"=>"มังสวิรัติ");
11 print("อาร์เรย์มี $HowMany
องค์ประกอบ
12 $Soups["Thursday"] = "บะหมี่ไก่";
13 $ซุป["วันศุกร์"] = "มะเขือเทศ";
14 $Soups["Saturday"] = "ครีมของ
บรอกโคลี";
15 $HowManyNow = จำนวน($ซุป);
16 print("ตอนนี้อาร์เรย์มี
องค์ประกอบ $HowManyNow
องค์ประกอบ
17 ?>
18
19
ปรากฏใน PHP 4.0 คุณลักษณะใหม่ซึ่งช่วยให้คุณสามารถเพิ่มอาร์เรย์หนึ่งไปยังอีกอาร์เรย์หนึ่งได้ การดำเนินการนี้สามารถเรียกว่าการรวมหรือต่ออาร์เรย์เข้าด้วยกัน ฟังก์ชัน array_merge() ถูกเรียกดังนี้:
$NewArray = array_merge($OneArray, $TwoArray);
คุณสามารถเขียนหน้า Soups.php ใหม่ได้โดยใช้ฟังก์ชันนี้ หากคุณทำงานบนเซิร์ฟเวอร์ที่ติดตั้ง PHP 4.0
การรวมสองอาร์เรย์เข้าด้วยกัน
- เปิดไฟล์ซุป.php ในโปรแกรมแก้ไขข้อความหากยังไม่ได้เปิด
- หลังจากเตรียมใช้งานอาร์เรย์ $Soups แล้ว ให้นับองค์ประกอบและพิมพ์ผลลัพธ์ หลังจากเตรียมใช้งานอาร์เรย์โดยใช้ฟังก์ชัน array() แล้ว ให้เพิ่มรายการต่อไปนี้:
- รวมสองอาร์เรย์เป็นหนึ่งเดียว $TheSoups = array_merge($ซุป, $Soups2);
- นับองค์ประกอบของอาร์เรย์ใหม่และพิมพ์ผลลัพธ์ $HowMany3 = จำนวน ($TheSoups);
- ปิด PHP และเอกสาร HTML ?>
- บันทึกไฟล์ (รายการ 7.3) อัปโหลดไปยังเซิร์ฟเวอร์และทดสอบในเบราว์เซอร์ (รูปที่)
print("อาร์เรย์ $Soups มีองค์ประกอบ $HowMany
print("ตอนนี้อาร์เรย์มีองค์ประกอบ $HowManyNow
- สร้างอาร์เรย์ที่สอง นับองค์ประกอบและพิมพ์ผลลัพธ์ด้วย
"วันพฤหัสบดี"=>"ก๋วยเตี๋ยวไก่",
"วันศุกร์"=>"มะเขือเทศ",
"วันเสาร์"=>"ครีมบรอกโคลี");
$HowMany2 = จำนวน ($ซุป2);
print("อาร์เรย์ $Soups2 มีองค์ประกอบ $HowMany2
print("ตอนนี้อาร์เรย์มีองค์ประกอบ $HowManyNow
ตรวจสอบให้แน่ใจว่าอาร์เรย์จัดเรียงตามลำดับนี้ ($Soups จากนั้น $Soups2) กล่าวคือ ควรเพิ่มองค์ประกอบของวันพฤหัสบดีและวันศุกร์เข้าไปในองค์ประกอบของวันจันทร์ของวันพุธ และไม่ใช่ในทางกลับกัน
print("อาร์เรย์ $TheSoups ประกอบด้วย
-$HowMany3 องค์ประกอบ
print("ตอนนี้อาร์เรย์มีองค์ประกอบ $HowManyNow
รายการ 7.3 ฟังก์ชัน Array_merge() เป็นฟังก์ชันใหม่ นี่เป็นหนึ่งในฟังก์ชันเพิ่มเติมหลายประการใน PHP 4.0 ที่ออกแบบมาเพื่อทำงานกับอาร์เรย์ การใช้อาร์เรย์จะช่วยประหยัดเวลาได้มาก
1
2
3
4
5 6 $ซุป = อาเรย์!
7 "วันจันทร์"=>"ซุปหอย",
"วันอังคาร"=>"พริกไก่ขาว",
8 "วันพุธ"=>"มังสวิรัติ"
9);
10 $HowMany = จำนวน($ซุป);
11 print("อาร์เรย์ $Soups มีองค์ประกอบ $HowMany
องค์ประกอบ
12 $ซุป2 = อาร์เรย์(
13 "วันพฤหัสบดี"=>"ก๋วยเตี๋ยวไก่",
14 "วันศุกร์"=>"มะเขือเทศ",
15 "วันเสาร์"=>"ครีมบรอกโคลี"
16); .
17 $HowMany2 = จำนวน($ซุป2);
18 print ("อาร์เรย์ $Soups2 มีองค์ประกอบ $HowMany2
องค์ประกอบ
19 $TbeSoupe = array_merge ($ซุป, $Soups2);
20 $HowMany3 = จำนวน ($TheSoups) ;
21 print ("อาร์เรย์ $TheSoups มีองค์ประกอบ .$HowMany3
องค์ประกอบ
22 ?> "
23
24
โปรดใช้ความระมัดระวังเมื่อเพิ่มองค์ประกอบลงในอาร์เรย์โดยตรง สิ่งนี้ทำอย่างถูกต้องเช่นนี้: $Ar ray = "Add This"; iyai$Aggau = "เพิ่มสิ่งนี้"; แต่มันถูกต้องเช่นนี้: $Aggau = "เพิ่มสิ่งนี้"; หากคุณลืมใส่วงเล็บ ค่าที่เพิ่มเข้าไปจะทำลายอาร์เรย์ที่มีอยู่ และเปลี่ยนให้เป็นสตริงหรือตัวเลขธรรมดา
PHP 4.0 มีฟังก์ชันใหม่มากมายสำหรับการทำงานกับอาร์เรย์ ไม่ได้กล่าวถึงทั้งหมดไว้ในหนังสือ อย่างไรก็ตาม ข้อมูลที่สมบูรณ์เกี่ยวกับเรื่องนี้มีอยู่ในคู่มือภาษา PHP ซึ่งสามารถพบได้บนเว็บไซต์ PHP ระวังอย่าใช้คุณสมบัติใหม่ที่เป็นเอกลักษณ์ของ PHP 4.0 หากเซิร์ฟเวอร์ของคุณใช้งาน PHP 3.x