3

配列から1つの要素を複製する方法:

たとえば、私はこの配列を持っています:

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
)
4

3 に答える 3

1

次のように、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
)
于 2010-04-22T09:22:00.273 に答える
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';

bar1key に関連付けられた値fooをそれ自体で上書きしますbar1。配列には1キーと値のペア notが含まれ2ます。

于 2010-04-22T09:05:32.320 に答える
0
$arr['newkey'] = $arr['oldkey'];
natsort($arr);
于 2010-04-22T09:08:15.650 に答える