2017-02-22 3 views
0

У меня есть ключевое значение, которое возвращает более одного элемента, и я изо всех сил пытаюсь получить данные, как мне нужно.Создание массива из значения в ячейке, заключенного в квадратные скобки и запятой.

сообщение массив данных

Array 
(
    [myproducts] => Array 
     (
      [0] => ["Product One","Product Two"] 
      [1] => USD 
      [2] => 19.20 
     ) 
) 

Что я пробовал:

// Get product array as list 

$prod_arr = $_POST['myproducts']; 
$products = array ($prod_arr['0'],$prod_arr['1'],$prod_arr['2']); 

$arrlength = count($products); 
    for($x = 0; $x < $arrlength; $x++) { 
     echo '<ul>'; 
     echo '<li>'.$products[$x].'</li>'; 
     echo '</ul>'; 
    } 

Это дает мне:

["Product One","Product Two"] 
USD 
19.20 

Если я взорвать первый ключ:

print_r (explode('","',$prod_arr["0"])); 

Array 
( 
    [0] => ["Product One) 
    [1] => Product Two"] 
    ) 

Я хочу, чтобы получить продукты из массива, но это добавление в [" и "], что делает его трудно, если не невозможно в моей ситуации использовать первое и последнее значение внутри массива.

Как я могу сломать [myproducts][0] в свой собственный массив?

+3

Подсказка: 'print_r (json_decode ('[ "продукт One", "Продукт Два"]'));' – JustOnUnderMillions

+0

print_r ($ prod_arr [0] [0 ]) должен дать вам «Продукт один» – Oliver

+0

'print_r (json_decode ($ prod_arr [0]));' get 'массив, но я не могу получить доступ к значению как '[0] [0]' и '[0] [1] '. НО - я получил это. Я отправлю ответ ниже :) – jarmerson

ответ

0

Рассматриваемый массив необходимо декодировать, используя json_decode().

$list_items = json_decode($prod_arr[0]); 

Для доступа к циклам значений через каждую клавишу. Я включил разрыв строки.

$arrlength = count($list_items); 
    for($x = 0; $x < $arrlength; $x++) { 
     echo $list_items[$x]; 
     echo '<br>'; 
    } 

Выход:

Product One 
Product Two 
Смежные вопросы