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

5

我有一个函数,它返回一个类似下面的数组:我想忽略键并直接提取值。如何在不使用for循环的情况下实现这一点?返回的函数只有一个键,但该键(在此示例中为2)可以是一个变量。

我有一个函数,返回一个像下面这样的数组,其中值是一个数组:我想忽略键并直接提取值。如何在不使用for循环的情况下实现这一点?返回的函数只有一个键,但该键(在此示例中为2)可以是一个变量。
Array ( [2] => Array ( [productID] => 1 [offerid]=>1)

期望结果:

Array  ( [productID] => 1 [offerid]=>1)
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

0

我认为Devon的答案对您有用,但如果不行,您可以尝试

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

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

array_map(),

类似array_map('array_map', $arr);应该可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接