2015-12-23 4 views
4

У меня есть функция, которая возвращает массив, в котором значение представляет собой массив, как показано ниже: Я хочу игнорировать ключ и извлекать значение напрямую. Как я могу сделать это без цикла for? Возвращенный функция имеет только один ключ, но ключ (2 в данном случае) может быть переменнойPHP: Игнорировать ключ и извлечь значение массива

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

Если вы хотите, чтобы получить текущее значение массива, вы может использовать current(), предполагая, что указатель массива находится в правильном положении. Если есть только одно значение, то это должно работать нормально.

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

0

Я думаю, ответ Девон будет работать для вас, но если нет ваш может попробовать

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

, если вам нужно всегда второй индекс вашего основного массива, если вам нужно все использовать индекс

array_map(),

что-то вроде array_map('array_map', $arr); должно работать.

Смежные вопросы