【问题标题】:Get value without knowing key in one-pair-associative-array在不知道一对关联数组中的键的情况下获取价值
【发布时间】:2012-06-24 02:27:31
【问题描述】:

有一个关联数组只有一个key=>value

我不知道它的关键,但我需要得到它的价值:

$array = array('???' => 'value');
$value = // ??

$array[0] 不起作用。

我怎样才能得到它的价值?

【问题讨论】:

  • 如您所见,有几个很好的答案,我认为最简洁的是 end(),正如 @nickb 所发布的。
  • 同意,它更像是“忍者”然后array_keys

标签: php arrays associative-array


【解决方案1】:

array_keys() 会帮你拿到钥匙

$keys = array_keys($array);
echo $array[$keys[0]];

【讨论】:

  • 这将使 OP 成为关键,而不是价值,正如 OP 所希望的那样
  • 相应地更新了我的答案
  • 现在你的第二行需要括号而不是括号。
【解决方案2】:

你想要的是检索第一个项目?

$value = reset($array);
$key = key($array);

【讨论】:

    【解决方案3】:

    由于数组中只有一个元素,您还可以执行以下任一函数来获取值。

    $value = reset( $array);
    $value = current( $array);
    $value = end( $array);
    

    另外,如果你想使用array_keys(),你需要这样做:

    $keys = array_keys( $array);
    echo $array[ $keys[0] ];
    

    获取价值。

    作为更多选项,您还可以使用array_pop()array_shift() 来获取值:

    $value = array_pop( $array);
    $value = array_shift( $array);
    

    最后可以使用array_values()获取数组的所有值,然后取第一个:

    $values = array_values( $array);
    echo $values[0];
    

    当然,还有很多其他选择;有些傻,有些有用。

    $value = pos($array);
    $value = implode('', $array);
    $value = current(array_slice($array, 0, 1));
    $value = current(array_splice($array, 0, 1));
    $value = vsprintf('%s', $array);
    foreach($array as $value);
    list(,$value) = each($array);
    

    【讨论】:

    • 我认为这些都是可用的选项。
    【解决方案4】:

    你应该使用 array_values

    $newArray = array_values($array);
    echo $newArray[0];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 2020-07-02
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      相关资源
      最近更新 更多