PHP:忽略键并提取数组的值


PHP: Ignore key and extract value of an array

我有一个函数,它返回一个数组,其中的值是如下所示的数组:我想忽略键并直接提取值。如果没有for循环,我怎么能做到这一点?返回的函数只有一个键,但键(本例中为2)可以是可变

Array ( [2] => Array ( [productID] => 1 [offerid]=>1)

预期结果:

Array  ( [productID] => 1 [offerid]=>1)

至少有三种方法可以做到这一点:

使用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']);

如果要获取数组的当前值,可以使用current(),假设数组指针位于正确的位置。如果只有一个值,那么这应该可以正常工作。

http://php.net/manual/en/function.current.php

我认为Devon的答案对你有效,但如果不行,你可以试试

$arr = array_column($arr, $arr[2]);

如果您总是需要主数组的第二个索引,如果您需要所有索引,请使用

array_map()

array_map('array_map', $arr);这样的东西应该起作用。