我试图从数组中获取某个值。 数组的示例是:
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]
来解决此问题,但这不会给出想要的结果。
有没有办法获得结果数组中第一个元素的输出?
答案 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;
}