如何获取关联数组的第 i 个元素?
How to get the i'th element of an associative array?
我有数组:
array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2')
注意:似乎没有什么是有序的。所以离开计划找数字订单。
如何固定此关联数组的第 i 个元素?
例如,当 i
为 4
时,该值应为 4
,
当 i
为 1
时,值应为 0
.
array_shift()
永远解决不了这个需求。很清楚循环的逻辑解决了这个问题
试试这个:
$arr1 = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
$i=0;
$findIndex = 4;
$value = '';
foreach($arr1 AS $ele) {
if ($findIndex == $i) {
$value = $ele;
break;
}
$i++;
}
echo $value ? $value : 'Not found';
这应该适合你:
在这里您可以使用 array_keys()
来访问作为数字索引数组的关联数组的键,然后您可以再次将其用作数组的键。
$arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
echo $arr[array_keys($arr)[3]];
//^ This is your 'i'
输出:
4
when solution is a[i] <- 你不能这么简单,但你接近上面的解决方案。 (注意,由于带有键的数组是从 0 开始的索引,因此第 4 个元素是索引 3)
您可以使用一个变量然后减去一个,得到您的逻辑,即 4 => 4。
$i = 4;
$arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
echo $arr[array_keys($arr)[$i-1]];
没有函数调用,也许更快
$arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
$i = 4;
foreach($arr as $v)
if(!--$i) { echo $v; break; }
我有数组:
array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2')
注意:似乎没有什么是有序的。所以离开计划找数字订单。
如何固定此关联数组的第 i 个元素?
例如,当 i
为 4
时,该值应为 4
,
当 i
为 1
时,值应为 0
.
array_shift()
永远解决不了这个需求。很清楚循环的逻辑解决了这个问题
试试这个:
$arr1 = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
$i=0;
$findIndex = 4;
$value = '';
foreach($arr1 AS $ele) {
if ($findIndex == $i) {
$value = $ele;
break;
}
$i++;
}
echo $value ? $value : 'Not found';
这应该适合你:
在这里您可以使用 array_keys()
来访问作为数字索引数组的关联数组的键,然后您可以再次将其用作数组的键。
$arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
echo $arr[array_keys($arr)[3]];
//^ This is your 'i'
输出:
4
when solution is a[i] <- 你不能这么简单,但你接近上面的解决方案。 (注意,由于带有键的数组是从 0 开始的索引,因此第 4 个元素是索引 3)
您可以使用一个变量然后减去一个,得到您的逻辑,即 4 => 4。
$i = 4;
$arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
echo $arr[array_keys($arr)[$i-1]];
没有函数调用,也许更快
$arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
$i = 4;
foreach($arr as $v)
if(!--$i) { echo $v; break; }