дублировать один элемент из массива php - PullRequest
1 голос
/ 22 апреля 2010

как я могу дублировать один элемент из массива:

например, у меня есть этот массив:

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 ]

1 голос
/ 22 апреля 2010

РЕДАКТИРОВАТЬ:

Похоже, вы изменили свой вопрос:)

Если вы хотите иметь ключ 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.

0 голосов
/ 22 апреля 2010

Что-то вроде следующего, замените функцию 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
)
0 голосов
/ 22 апреля 2010
$arr['newkey'] = $arr['oldkey'];
natsort($arr);
...