2016-05-07 10 views
1

避ける方法34 overridden by 124は次の通りですPHPコードですか?私はちょうど34124の両方を保持したいです。php配列の前の値が後の値によってオーバーライドされないようにするには?

$arr = array(12, 34, "df"=>43, "1"=>124, 65); 
$num = count($arr); 
reset($arr); 
for ($i = 1; $i <= $num; ++$i) { 
    echo 'The Current Position:' . key($arr); 
    echo '<br />'; 
    echo 'The Current Value:'. current($arr); 
    next($arr); 
    echo '<br />'; 
    echo '<br />'; 
} 
+1

PHPでインデックスを作成するだけです。 – Rizier123

+0

キーをアレイから削除することができます。 –

+1

@ Rizier123もし私が124の鍵として「1」を保持したいのであれば、それに対処する方法は? – Michael

答えて

1

PHPは、常に彼らは内部の文字列変数または引用符であっても、整数として、すべての数字キーを扱います。

次はそれが非常に明白にすることができます:

<?php 

$arr = [1 => 'hi', '2' => 'bye', 'a1' => 'hiha']; 

var_export($arr); 

ソリューションを使用すると、文字と整数としてインデックス付けたくない値の前に付けることです。

インデックス付き配列と連想配列をミキシングすると、後で後悔する組織の深刻な欠如が示されます。

1

あなたの配列インデックスが有効ではありません。

一意のキーで配列を設計する必要があります。PHPはインデックス作成を行います。一意のキーに「1」を使用して索引「1」を変更できます。

あなたがprint_rあなたの配列は、あなたがこの

Array 
(
    [0] => 12 
    [1] => 124 
    [df] => 43 
    [2] => 65 
) 

のような結果を見なければならないのであれば、重複キー、あなたがかもしれない損失データを配列にしないでください。

$arr = array(12, 34, "df" => 43, "one" => 124, 65); 
foreach($arr as $key => $val){ 
    echo $key." - ".$val."<br/>"; 
} 

結果:

key - value 
0 - 12 
1 - 34 
df - 43 
one - 124 
2 - 65 
関連する問題