我有一个函数返回一个数组,其中值是一个如下所示的数组:我想忽略该键并直接提取值。如果没有for循环,我怎么能这样做?返回的函数只有一个键,但键(在本例中为2)可以是变量
Array ( [2] => Array ( [productID] => 1 [offerid]=>1)
预期结果:
Array ( [productID] => 1 [offerid]=>1)
答案 0 :(得分:3)
至少有3种方法可以做到这一点:
使用current
函数,但请确保数组指针位于数组的开头:
$array = Array (2 => Array ( 'productID' => 1, 'offerid' => 1));
$cur = current($array);
var_dump($cur, $cur['offerid']);
接下来是array_values
函数,它将为您提供带数字键的值数组,从0
开始
$array = Array ( 2 => Array ( 'productID' => 1, 'offerid' => 1));
$av = array_values($array);
var_dump($av[0], $av[0]['offerid']);
第三个选项是使用array_shift
,此函数将返回数组的第一个元素,但要小心,因为它会减少原始数组:
$array = Array ( 2 => Array ( 'productID' => 1, 'offerid' => 1));
$first = array_shift($array);
var_dump($first, $first['offerid']);
答案 1 :(得分:1)
如果要获取数组的当前值,可以使用current()
假设数组指针位于正确的位置。如果只有一个值,那么这应该可以正常工作。
答案 2 :(得分:0)
我认为Devon的答案对你有用,但如果没有,你可以尝试
$arr = array_column($arr, $arr[2]);
如果您需要始终使用主数组的第二个索引,则需要使用所有索引
array_map()
,
array_map('array_map', $arr);
之类的东西应该有用。