从php数组复制一个元素

时间:2010-04-22 09:02:43

标签: php arrays duplicate-data

我如何从数组复制一个元素:

例如,我有这个数组:

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
)

3 个答案:

答案 0 :(得分: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';

您将使用bar1本身覆盖与关键foo相关联的值bar1。该数组将具有1键值对而非2

答案 1 :(得分:0)

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

答案 2 :(得分: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
)