Php 从数组中获取值

Php 从数组中获取值,php,arrays,Php,Arrays,我试图从数组中获取某个值。 该阵列的示例如下: array(2) { ["error"]=> array(0) { } ["result"]=> array(1) { ["open"]=> array(1) { ["12345-AAAAA-66AAKK"]=> array(14) { ["inf"]=> 通常,当我需要某个值时,我会使用: $datawanted=$data[result]

我试图从数组中获取某个值。 该阵列的示例如下:

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()
键[0]
获得这个结果,但这并没有得到想要的结果


是否有方法获取结果数组中第一个元素的输出?

您可以使用数组搜索:

例如:

foreach ($array['result']['open'] as $dynamicKey => $item) {
    if ($key = array_search('Value you are looking for', $item) {
       $datawanted=$array['result']['open'][$dynamicKey][$key];
    }
}

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

标记
result
看起来像一个常量。PHP搜索命名的
结果
,但找不到并触发通知。然后它认为“我猜程序员想写
'result'
(一个字符串,不是常量)。我将把它转换成字符串。”然后使用
'result'

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

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

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

或者,您可以使用该函数仅获取数组的值(忽略键,返回的数组从零开始索引值),然后您所需的数据位于该数组上的位置
0

 $values     = array_values($data['result']['open']);
 $datawanted = $values[0];
如果不需要保留
$data
进行进一步处理,另一个选项是使用PHP函数从数组中删除第一个值并返回它。请注意,此函数将修改作为参数接收的数组:

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

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

您想问什么?在处理数组时,最好确保键是静态的,值可以是非静态的。您可以使用
array\u keys()
获取键并至少使用它。非常感谢您的帮助!我已经尝试了代码,但不幸的是,这只是返回“array”作为结果。包含reset()的语句和foreach语句。当我回显结果时,它显示ArrayOf course
echo
prints
Array
$datawanted
中所需(并获取)的值是一个数组。使用或来研究它的结构和内容。当然,这并没有给我我想要的价值。事实上,它完全忽略了该值,因为它显示了该值的结果。因此,如果我省略了“open”,我也会得到变量,但我不明白如何将其分配给变量。
foreach ($data['result']['open'] as $key => $value) {
    // $key is '12345-AAAAA-66AAKK'
    $datawanted = $value;
}