嗨,我想知道如何將 php 陣列中的元素復制 x 次。以這樣一種方式,克隆出現在原版之后。如果這是您的原始陣列。
array(
[0]=>'Clone me please',
[1]=>'I m here for decoration'
)
導致 :
array(
[0]=>'Clone me please',
[1]=>'Clone me please',
[2]=>'Clone me please',
[3]=>'I m here for decoration'
)
提前致謝。
uj5u.com熱心網友回復:
我首先構建了一個函式來回圈您想要克隆元素的次數。我創建了一個函式,將在所需鍵之后插入克隆。它是我已經為不同目的構建的兩個函式的合并。 .
<?php
$array = array();
$array[0] = 'Clone Me Please';
$array[1] = 'Clone Me Too Please';
$array[2] = 'I am here for decoration';
print_r ( cloneItem(0,$array,3) );
print_r ( cloneItem(1,$array,2) );
function cloneItem($itemKey, $array, $timesToDuplicate){
$clone_me[0] = $array[$itemKey];
for ($x = 1; $x <= $timesToDuplicate; $x ){
$array = array_insert_after($array,$itemKey,$clone_me);
}
return $array;
}
function array_insert_after( $array, $key, $new ) {
$keys = array_keys( $array );
$index = array_search( $key, $keys );
$pos = false === $index ? count( $array ) : $index 1;
return array_merge( array_slice( $array, 0, $pos ), $new, array_slice( $array, $pos ) );
}
輸出 ..
Array
(
[0] => Clone Me Please
[1] => Clone Me Please
[2] => Clone Me Please
[3] => Clone Me Please
[4] => Clone Me Too Please
[5] => I am here for decoration
)
Array
(
[0] => Clone Me Please
[1] => Clone Me Too Please
[2] => Clone Me Too Please
[3] => Clone Me Too Please
[4] => I am here for decoration
)
uj5u.com熱心網友回復:
這是一個使用幾個 php 陣列函式的簡單函式。
function dupeElement(int $position, int $count, array $orig): array {
$mid = array_fill(0, $count, $orig[$position]);
$end = array_slice($orig, $position 1);
array_splice($orig, $position);
return array_merge($orig, $mid, $end);
}
- array_fill用于根據要復制的元素在原始陣列中的索引位置創建一個新陣列
- array_slice用于獲取要復制的元素之后的部分
- 此函式中的array_splice用于洗掉陣列的末尾部分。
- array_merge允許您按照提供的順序合并數值陣列。
$position 引數應該是要被欺騙的專案的確切數字索引(從 0 開始)。$count 是您想要的重復次數。最終陣列將是 $count 1 個專案(因為它包括原始專案)。
對于您的示例,假設您的陣列名為 $a:
$a = dupeElement(0, 2, $a);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441578.html
上一篇:在VBA中宣告一個靜態位元組陣列
