PHP - 通过索引而不是键获取数组值

7
我通过API调用得到了一个多维数组。这个数组中的值是以这样的键存储的:
Array(["BTC_XRP"] => 1)

我可以通过使用键(如BTC_XRP)来获取数组的值,但如果我需要使用索引来获取值怎么办?
例如,如果无法通过索引获取值,我该如何使用for循环获取数组的每个值?
由于数组由大约100个值组成,我需要使用for循环将每个值输出,但这给我带来了以下错误:
注意:未定义偏移量:0
是否可能使用索引而不是键来获取值?
此外,我想通过索引获取键。如果我想获取第一个值的键,我希望使用索引0来获取它。

使用 foreach 代替 for 循环。 - Casimir et Hippolyte
你尝试过使用$array[0]来访问数组中的元素吗?例如,根据你的问题,echo $array[0]应该输出1。或者我理解错了吗? - the_peacock
@Ashley Prescott 是的,那正是我所做的,但如果一个值被存储为键,PHP就不允许您通过索引获取它。 - DamiToma
有害混乱标题的其中一个问题。 - Your Common Sense
2个回答

8

看起来你正在寻找 array_keys(用于通过索引获取键)和 array_values(用于通过索引获取值)函数:

$array = array("BTC_XRP" => 1, "EUR_XRP" => 234, "USD_XRP" => 567);
$keys   = array_keys( $array );
$values = array_values( $array );

var_dump( $keys[1] ); // string(7) "EUR_XRP"
var_dump( $values[1] ); // int(234)

或者像Joshua建议的那样使用foreach。


3
这个问题的标题很令人困惑。OP所需要的只是简单地遍历关联数组。而答案也同样愚蠢:
foreach ($array as $key => $value) {
    echo "Key: $key, value: $value";
}

但是标题吸引了从谷歌搜索而来的人们,明确地询问如何通过关联数组的位置(或“索引”)获取一个特定值。为此,您需要使用一个名为array_slice()的函数:
$array = array('a'=>'apple', 'b'=>'banana', '42'=>'pear', 'd'=>'orange');

$index = 2;
$elem = array_slice($array, $index, 1, true);
$key = key($elem);
$value = reset($elem);
echo "Key: $key, value: $value"; // Key: 42, value: pear

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接