hỏi cách chèn phần tử vào vị trí bất kỳ trong array php

0 k thích

Mọi người cho hỏi có cách nào nhanh nhất để chèn một phần tử mới vào vị trí chỉ định trong array php được không ?

avatar đã hỏi ngày 26 tháng 3 bởi kaydytran (890 điểm)  

2 Trả lời

0 k thích
 
Hay nhất

Hàm dùng để chèn vào cả array bình thường và associative array :

/**
 * @param array      $array
 * @param int|string $position
 * @param mixed      $insert
 */
function array_insert(&$array, $position, $insert)
{
    if (is_int($position)) {
        array_splice($array, $position, 0, $insert);
    } else {
        $pos   = array_search($position, array_keys($array));
        $array = array_merge(
            array_slice($array, 0, $pos),
            $insert,
            array_slice($array, $pos)
        );
    }
}

chèn vào array bình thường :

$arr = ["1", "2", "3"];
array_insert(
    $arr,
    1,
    "1,5"
);
var_dump($arr);
// ->
array (
  0 => '1',
  1 => '1,5',
  2 => '2',
  3 => '3',
)

chèn vào associative array:

$arr = ["id" => "1", "username":"test"];
array_insert($arr, "username", ["gender":"male"]);
var_dump($arr);
// ->
array (
  "id" => "1",
  "gender" => "male",
  "username" => "test"
)
avatar trả lời ngày 6 tháng 4 bởi hoangthehung (1,340 điểm)  
đã được chọn ngày 15 tháng 7 bởi admin
0 k thích

bạn có thể dùng hàm array_splice :

$original = array( 'a', 'b', 'c', 'd', 'e' );
$inserted = array( 'x' ); // không cần thiết phải là array, một string cũng được

array_splice( $original, 3, 0, $inserted ); // chèn vào ở vị trí số 3
// $original sẽ mang gía trị ['a', 'b', 'c', 'x', 'd', 'e']
avatar trả lời ngày 6 tháng 4 bởi vntuanbk (660 điểm)  
...