2017-09-06 15 views
0

明らかなような質問がありますが、まだ再現できません。 にさて、私は配列を持っているとしましょう:どのようにでしょう配列キーを値と同じように設定する方法

array(
    'apple' => 'apple', 
    'orange' => 'orange', 
    'banana' => 'banana' 
); 

$array = ('apple', 'orange', 'banana'); 

だから私は実際には同じ配列を持ちたいが、値と同じキーを使用して、このようなものでしょうそれを行う?

+1

はそのような新しい配列である、またはあなたが持っているものを修正しますか?キーが重複しないため、値が重複する場合はどうなりますか? – Qirel

+0

それはもちろん新しい配列になります、Ommy Wommyが問題を見つけてくれて、それは私のために働く、ありがとう! –

答えて

1
$array = array('first','second','third'); 

$newArray = array(); 
foreach($array as $value) { 
    $newArray[$value] = $value; 
} 

それともあなたが望んでいたとして、配列を初期化:あなたはarray_combineを使用して、自分自身との配列を組み合わせることができます

$array = array(
    'first' => 'first', 
    'second' => 'second' 
); 
+0

素晴らしい!おかげさま@Ommy Wommy!しかし、もし$ array =(0 => 'apple'、1 => 'orange'、2 => 'banana')のような配列を持っていればうまくいくのだろうか。 –

+0

これは、forループが値を反復しているので機能しますが、その時点ではキーは無関係です。 –

0
$array = array(); 
$array['apple'] = 'apple'; 
$array['orange'] = 'orange'; 
3

。しかし、に違反するキーの値は文字列に変換されることに注意してください。これは、文字列変換後に重複が失われる可能性があることを意味します。例:

$array = array('apple', 'orange', 'banana',[], 'Array'); 
$array = array_combine($array,$array); 
var_dump($array); 

3v4l link without duplicates3v4l link with duplicate after string conversion

関連する問題