2016-11-07 3 views
3

Любой человек может помочь мне
У меня есть небольшая проблема со следующим кодомPHP - Преобразование Еогеасп в массивы

foreach ($products as $product) { 
    $product->name; 
    $product->code; 
    ... 
} 

Мой выходной код с var_dump ($ продукты)

array 
    0 => 
     object(stdClass) 
     ... 
     ... 
     ... 
    1 => 
     object(stdClass) 
     ... 
     ... 
     ... 

И мне нужно что-то вроде этого

$output = array(
    array('name' => 'item1', 'code' => 'code1', 'price' => '10.00'), 
    array('name' => 'item2', 'code' => 'code2', 'price' => '20.00') 
); 
+0

Можете ли вы опубликовать точные значения вашего собираетесь конвертировать в массивы? –

+0

Преобразование foreach в массив? Вы имеете в виду преобразование объектов в массив. – Xorifelse

+1

Если вы хотите иметь массивы вместо объектов, вы можете использовать '(array) $ any', и он превратит его в массив – Rasclatt

ответ

3

Для этого есть функционал на это PHP json_decode()

смешанной json_decode (строка $ JSON [, BOOL $ ассоциативной = ложь [, Int $ глубина = 512 [, INT $ Вариантов = 0]]])

Необходимости используйте эту функцию разумно.

Как вы видите в описании функции,

три Параметры функций:

1) Переменный быть преобразованы.

2) Возврат как ассоциативный массив.

3) Глубина: по умолчанию => 512. До глубины 512 уровней (в случае многомерного массива или сложного объекта) дочерние элементы будут преобразованы в массивы, если для второго параметра установлено значение true.

Сначала кодируйте свою переменную на json_encode() и декодируйте ее с помощью json_decode().

json_decode() Второй параметр должен быть установлен в true.

Этот true означает возвратную ассоциативную матрицу вместо исходного типа.

псевдокоде:

$output = json_decode(json_encode($yourVar), TRUE); 
+0

. Ваш массив уже имеет нужный формат. –

+0

Вы правы, почему я никогда об этом не думал, спасибо – Stromox

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