php diziden bir öğe yinelenen

2 Cevap php

nasıl ben diziden bir eleman çoğaltabilirsiniz:

Örneğin, ben bu dizi var:

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

ben bu çoğaltmak istiyorsanız: 0011.jpg, nasıl devam?

ben bu almak istiyorum:

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

2 Cevap

Aşağıdaki gibi bir şey, sizin için uniqid () fonksiyonunu değiştirebilirsiniz:

<?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);

?>

Hangi seni alır:

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

EDIT:

Sorunuzu değiştirilmiş gibi görünüyor :)

Yapabileceğiniz çoğaltılamaz değere sahip bir new tuşuna sahip olmak istiyorsanız:

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

Old answer:

Sen yapamazsın.

Bir dizi aynı anahtarla birden fazla değer olamaz.

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

Ve çoğaltmak çalışırsanız:

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

Eğer değer bar1 bar1 kendisi ile tuşu foo ile ilişkili overwriting olacak. Dizi olacak 1 anahtar değer çifti değil 2.