2010-04-22 29 views
1

怎麼可以從陣列重複一種元素:重複從PHP陣列的一個元件

例如,我有此數組:

Array 
(
    [LRDEPN] => 0008.jpg 
    [OABCFT] => 0030.jpg 
    [SIFCFJ] => 0011.jpg 
    [KEMOMD] => 0022.jpg 
    [DHORLN] => 0026.jpg 
    [AHFUFB] => 0029.jpg 
) 
如果我想複製此

:0011.jpg,如何繼續?

我想這一點:

Array 
(
    [LRDEPN] => 0008.jpg 
    [OABCFT] => 0030.jpg 
    [SIFCFJ] => 0011.jpg 
    [NEWKEY] => 0011.jpg 
    [KEMOMD] => 0022.jpg 
    [DHORLN] => 0026.jpg 
    [AHFUFB] => 0029.jpg 
) 
+0

不能具有相同密鑰的兩個數組元素,更好地解釋你需要做的事情。 – 2010-04-22 09:04:08

+0

我想複製一個元素!用我想要複製的值生成一個新密鑰! – robertdd 2010-04-22 09:08:28

回答

0

類似下面,改變uniqid()函數來你:

<?php 

$a=array(
    'LRDEPN' => '0008.jpg', 
    'OABCFT' => '0030.jpg', 
    'SIFCFJ' => '0011.jpg', 
    'KEMOMD' => '0022.jpg', 
    'DHORLN' => '0026.jpg', 
    'AHFUFB' => '0029.jpg' 
); 

$i='0011.jpg'; 

$newArray=array(); 
foreach($a as $k=>$v){ 
    $newArray[$k]=$v; 
    if($v==$i) $newArray[uniqid()]=$v; 
} 

print_r($newArray); 

?> 

它可以幫助您:

Array 
(
    [LRDEPN] => 0008.jpg 
    [OABCFT] => 0030.jpg 
    [SIFCFJ] => 0011.jpg 
    [4bd014ebf3351] => 0011.jpg 
    [KEMOMD] => 0022.jpg 
    [DHORLN] => 0026.jpg 
    [AHFUFB] => 0029.jpg 
) 
1

編輯:

看起來你修改你的問題:)

如果你想有一個與重複值new關鍵你可以這樣做:

$array_name['NEWKEY'] = $array_name['SIFCFJ'] 

舊的回答:

你不能。

一個數組不能有多個具有相同鍵的值。

$arr = array(); 
$arr['foo'] = 'bar1'; 
$arr['foo'] = 'bar2'; // this will wipe out bar1 

如果你試圖重複:

$arr = array(); 
$arr['foo'] = 'bar1'; 
$arr['foo'] = 'bar1'; 

你將覆蓋與主要foobar1本身關聯的值bar1。該陣列將具有1鍵值對,而不是2

+0

好!我明白了,我編輯了這個問題!我會生成一個新的密鑰,但我想要的價值是相同的! – robertdd 2010-04-22 09:11:47

+0

@robertdd:可以使用舊值的新密鑰。我已經更新了我的答案。 – codaddict 2010-04-22 09:13:46

+0

如何在$ array_name ['SIFCFJ'] 之後添加$ array_name ['NEWKEY']? – robertdd 2010-04-22 09:15:53

0
$arr['newkey'] = $arr['oldkey']; 
natsort($arr);