ฉันรู้วิธีแทรกไปยังจุดสิ้นสุดโดย:
$arr[] = $item;
แต่จะแทรกเข้าไปยังจุดเริ่มต้นได้อย่างไร
print_r($arr)
=>Array ( [0] => a, [1] => b, [-1] => c )
ฉันรู้วิธีแทรกไปยังจุดสิ้นสุดโดย:
$arr[] = $item;
แต่จะแทรกเข้าไปยังจุดเริ่มต้นได้อย่างไร
print_r($arr)
=>Array ( [0] => a, [1] => b, [-1] => c )
คำตอบ:
ใช้array_unshift ($ array, $ item);
$arr = array('item2', 'item3', 'item4');
array_unshift($arr , 'item1');
print_r($arr);
จะให้คุณ
Array
(
[0] => item1
[1] => item2
[2] => item3
[3] => item4
)
array_unshift
พูดว่าต่อไปนี้All numerical array keys will be modified to start counting from zero while literal keys won't be touched.
ในกรณีของอาเรย์แบบเชื่อมโยงหรืออาเรย์ที่มีหมายเลขซึ่งคุณไม่ต้องการเปลี่ยนคีย์อาเรย์:
$firstItem = array('foo' => 'bar');
$arr = $firstItem + $arr;
array_merge
ไม่ทำงานเนื่องจากจะทำดัชนีอาร์เรย์ซ้ำ
ใช้ฟังก์ชั่น array_unshift
แทรกรายการในตอนต้นของอาร์เรย์ที่เชื่อมโยงกับคีย์สตริง / ดัชนีที่กำหนดเอง
<?php
$array = ['keyOne'=>'valueOne', 'keyTwo'=>'valueTwo'];
$array = array_reverse($array);
$array['newKey'] = 'newValue';
$array = array_reverse($array);
ผลลัพธ์
[
'newKey' => 'newValue',
'keyOne' => 'valueOne',
'keyTwo' => 'valueTwo'
]
ใช้array_unshift ()เพื่อแทรกองค์ประกอบแรกในอาร์เรย์
User array_shift ()เพื่อลบองค์ประกอบแรกของอาร์เรย์
หรือคุณสามารถใช้อาเรย์ชั่วคราวแล้วลบอันที่จริงถ้าคุณต้องการที่จะเปลี่ยนมันในขณะที่ในรอบ:
$array = array(0 => 'a', 1 => 'b', 2 => 'c');
$temp_array = $array[1];
unset($array[1]);
array_unshift($array , $temp_array);
ผลลัพธ์จะเป็น:
array(0 => 'b', 1 => 'a', 2 => 'c')
และเมื่อทำในขณะที่อยู่ในรอบคุณควรทำความสะอาด$temp_array
หลังจากที่รายการต่อท้ายอาร์เรย์
$arr=array("a"=>"one", "b"=>"two");
$arr=array("c"=>"three", "d"=>"four").$arr;
print_r($arr);
-------------------
output:
----------------
Array
(
[c]=["three"]
[d]=["four"]
[a]=["two"]
[b]=["one"]
)
สำหรับอาร์เรย์ที่เชื่อมโยงคุณสามารถใช้การผสาน
$arr = array('item2', 'item3', 'item4');
$arr = array_merge(array('item1'), $arr)
$arr[-1] = $item;
พบที่นี่: stackoverflow.com/a/15252657/669677