【问题标题】:How to get the i'th element of an associative array? [duplicate]如何获取关联数组的第 i 个元素? [复制]
【发布时间】:2015-08-26 14:48:11
【问题描述】:

我有数组:

array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2')

注意:似乎没有任何问题。所以离开计划寻找数字顺序。

如何修复这个关联数组的第 i 个元素?

例如当i4时,值应该是4, 当i1 时,该值应为0

array_shift() 从来没有解决这个要求。很清楚循环的逻辑解决了这个问题。

【问题讨论】:

  • 展示你的尝试以及你卡在哪里
  • array_XXX j 和 l 之间的函数
  • @Rizier123 让我问你一个简单的问题,例如。当解决方案是a[i]时,您如何尝试?
  • @AtaboyDaniel 我认为你被困住了:a[i],你不能让它那么简单地工作。但是你可以接近这个。

标签: php arrays associative-array


【解决方案1】:

这应该适合你:

在这里,您只需使用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

当解决方案是 a[i]

您可以使用一个变量然后减去一个,以获得您的逻辑,即 4 => 4。

$i = 4;
$arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
echo $arr[array_keys($arr)[$i-1]];

【讨论】:

    【解决方案2】:

    没有函数调用,也许更快

    $arr = array(2=>'0',3=>'1',5=>'3',4=>'4',7=>'2');
    $i = 4;
    foreach($arr as $v) 
       if(!--$i) { echo $v; break; }
    

    【讨论】:

      【解决方案3】:

      试试这个:

      $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';
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
      猜你喜欢
      • 1970-01-01
      • 2016-07-27
      • 2011-05-04
      • 1970-01-01
      • 2019-11-07
      • 2016-07-27
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多