2012-01-08 11 views
2

私は数値で使用したい連想配列を持っています。私が何を意味するか:配列はちょっと、このようなものです:PHPの数値配列に関連付けられています

$countries = array 
    "AD" => array("AND", "Andorra"), 
    "BG" => array("BGR", "Bulgaria") 
); 

明らかにADが0であるとBGは1ですが、私は$countries[1]を印刷するとき、それも"Array"は表示されません。 $countries[1][0]を印刷すると、何も表示されません。私は鍵の番号を持っていますが、私は連想鍵を使うべきではありません。

+0

文字列キーと数字キーを使用します。 ID、コード、名前のスキーマを持つSQL TABLEでこれを行うのはなぜですか? –

+1

「AD」が「0」であることはそれほど明白ではないかもしれません。多分それは真実ではないでしょうか? –

+0

fabianhjr:はい、私はSQLテーブルを使用できません。なぜなら、スクリプトにはたくさんのモジュールがあり、どちらがどちらを使用しているのかわからないからです。 KerrekSB:なぜですか? – user890450

答えて

9

array_valuesのための完璧なユースケース:

$countries = array_values($countries); 

次に、あなたが彼らのインデックスで値を取得することができます

$countries[0][0]; // "AND" 
$countries[0][1]; // "Andorra" 
$countries[1][0]; // "BGR" 
$countries[1][1]; // "Bulgaria" 
+0

本当にありがとうございました!それは完全に動作します! :) :) – user890450

1

array_keys()はあなたに、配列のキーを提供します。 array_values()はあなたに配列の値を与えます。どちらも数値で索引付けされます。

0

必要なものを得るためのいくつかの回避策があります。 、二次キー・マップ配列を作り上げるの参照、または同時に数値連想キーを保持しているArrayAccess醜態を注入するだけでなく、あなたもこれを使用することができます:$countries[1][0]に非常に醜い回避策だ

print current(array_slice(current(array_slice($countries, 1)), 0)); 

を。配列キーは同じ順序で表示されるように見えます。 bemusing。

関連する問題