从Array中获取价值

时间:2017-02-07 09:44:52

标签: php arrays

我试图从数组中获取某个值。 数组的示例是:

array(2) {
  ["error"]=>
  array(0) {
  }
  ["result"]=>
  array(1) {
    ["open"]=>
    array(1) {
      ["12345-AAAAA-66AAKK"]=>
      array(14) {
        ["inf"]=>

通常当我想要某个值时,我会使用:

$datawanted=$data[result][open][value];

但是,在这种情况下,第一个数组是一个总是在变化的变量(12345-AAAAA-66AAKK),我需要找到它的值。

我尝试使用reset()key[0]来解决此问题,但这不会给出想要的结果。

有没有办法获得结果数组中第一个元素的输出?

2 个答案:

答案 0 :(得分:1)

您可以使用array_search:http://php.net/manual/de/function.array-search.php

示例:

android:choiceMode="singleChoice"

答案 1 :(得分:0)

$data[result][open]不是访问数组项的正确方法。

令牌result看起来像一个常数。 PHP搜索名为result的{​​{3}},找不到并触发通知。然后它认为"我想程序员想要写'result'(一个字符串,而不是一个常量)。我将它转换为字符串给他们。"并使用'result'代替。

它有效,但这是一种可怕的做法。它可以追溯到20年前PHP的史前史和constant

在修复代码以正确表示数组的键之后,下一步是选择许多PHP方法之一来访问数组中的值。

使用函数it's not recommended,您可以在不知道其键($data['result']['open']['12345-AAAAA-66AAKK'])的情况下获取数组的第一个值:

 $datawanted = reset($data['result']['open']);

或者您可以使用函数reset()仅获取数组的值(忽略键,返回的数组的值从零开始索引),然后您想要的数据位于0位置在这个阵列上:

 $values     = array_values($data['result']['open']);
 $datawanted = $values[0];

如果您不需要保留$data进行进一步处理,另一个选择是使用PHP函数array_values()从数组中删除第一个值并将其返回。请注意,此函数会修改它作为参数接收的数组:

$datawanted = array_shift($data['result']['open']);

如果您需要处理$data['result']['open']的所有值(您可能会这样做),那么最好的方法是使用array_shift() PHP语句。它允许您访问数组中每个元素的键和值:

foreach ($data['result']['open'] as $key => $value) {
    // $key is '12345-AAAAA-66AAKK'
    $datawanted = $value;
}