私が持っている場合:
$array = array( 'one' =>'value', 'two' => 'value2' );
$array[1]
から文字列one
を取得するにはどうすればよいですか?
あなたはしません。配列にキー[1]
がありません。あなたは出来る:
キーを含む新しい配列を作成します。
$newArray = array_keys($array);
echo $newArray[0];
ただし、値「one」は$newArray[0]
ではなく[1]
にあります。
ショートカットは次のとおりです。
echo current(array_keys($array));
配列の最初のキーを取得します。
reset($array);
echo key($array);
値「value」に対応するキーを取得します。
echo array_search('value', $array);
これはすべて、まさにあなたがやりたいことによって異なります。事実、[1]
はどの方向に「1」でも対応していません。
$array = array( 'one' =>'value', 'two' => 'value2' );
$allKeys = array_keys($array);
echo $allKeys[0];
出力されるもの:
one
特に1つのキーのみを使用する場合は、すべてのキーの配列を保存することなく、1行でこれを実行できます。
echo array_keys($array)[$i];
または、ループで必要な場合
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
$array = array( 'one' =>'value', 'two' => 'value2' );
$keys = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two
次のようにできます:
function asoccArrayValueWithNumKey(&$arr, $key) {
if (!(count($arr) > $key)) return false;
reset($array);
$aux = -1;
$found = false;
while (($auxKey = key($array)) && !$found) {
$aux++;
$found = ($aux == $key);
}
if ($found) return $array[$auxKey];
else return false;
}
$val = asoccArrayValueWithNumKey($array, 0);
$val = asoccArrayValueWithNumKey($array, 1);
etc...
コードを試したことはありませんが、うまくいくと確信しています。
幸運を!
key 関数は私を助け、非常に簡単です