Разборка массива

Тема в разделе "Обо всём", создана пользователем zema50, 28 апр 2020.

  1. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    833
    Симпатии:
    94
    добрый день, что то сегодня совсем запарился голова не рулит. нужно срочно доделать, но не выходит каменный цветок (
    проблема такая.
    есть массив в $data
    Код:
    Array
    (
        [prices] => Array
            (
                [0] => Array
                    (
                        ['price'] => 20.0000
                        ['product_id'] => 42
                        ['currency'] => RUB
                    )
    
                [1] => Array
                    (
                        ['price'] => 20.0000
                        ['product_id'] => 30
                        ['currency'] => USD
                    )
    
                [2] => Array
                    (
                        ['price'] => 0.0000
                        ['product_id'] => 47
                        ['currency'] => RUB
                    )
    
            )
    
    )

    пробовал разборку в цикле и та

    Код:
    foreach ($data as $price) {
        echo $price['product_id'];
    и так

    Код:
    foreach ($data as $price) {
                 foreach($price as $value) {
    echo $value['product_id'];
    и так

    Код:
    foreach ($data['prices'] as $price) {
        echo $price['product_id'];
    везде выдает ошибку
    Notice: Undefined index: product_id in

    что не так ?
     
  2. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    А так?
    PHP:
    foreach ($data['prices'] as $prices) {
        foreach(
    $prices as $price) {
        echo 
    $price['product_id'];
     
  3. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    833
    Симпатии:
    94
    ошибка
    Warning: Illegal string offset 'product_id'
     
  4. buslikdrev

    buslikdrev Пользователь

    Сообщения:
    38
    Симпатии:
    1
    foreach ($data['prices'] as $price) {
    echo $price['product_id'];
    }
    Вы покажите:
    var_dump($data);
     
    Последнее редактирование: 29 апр 2020
  5. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    833
    Симпатии:
    94
    $data
    Код:
    array(1) {
      ["prices"]=>
      array(5) {
        [0]=>
        array(3) {
          ["'price'"]=>
          string(7) "20.0000"
          ["'product_id'"]=>
          string(2) "42"
          ["'currency'"]=>
          string(3) "RUB"
        }
        [1]=>
        array(3) {
          ["'price'"]=>
          string(7) "20.0000"
          ["'product_id'"]=>
          string(2) "30"
          ["'currency'"]=>
          string(3) "USD"
        }
        [2]=>
        array(3) {
          ["'price'"]=>
          string(6) "0.0000"
          ["'product_id'"]=>
          string(2) "47"
          ["'currency'"]=>
          string(3) "RUB"
        }
      }
    }
     
  6. buslikdrev

    buslikdrev Пользователь

    Сообщения:
    38
    Симпатии:
    1
    foreach ($data['prices'] as $price) {
    echo $price["'product_id'"];
    }
     
  7. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    833
    Симпатии:
    94
    я же уже писал
    Notice: Undefined index: product_id in
     
  8. buslikdrev

    buslikdrev Пользователь

    Сообщения:
    38
    Симпатии:
    1
    КАВЫЧКИ ВНИМАНИЕ
     
  9. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    Вот так должно сработать:
    PHP:
    foreach ($data['prices'] as $prices) {
        foreach(
    $prices as $price) {
        echo 
    $price["'product_id'"];
    Но ты уже начал неправильно кодировать. Ты потом в кавычках запутаешься. Используй одинарные как в опенркарте везде.
     
  10. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    833
    Симпатии:
    94
    все нашел причину, в форме кавычки были лишние
    name="prices[<?php echo $product_value_row; ?>]['product_id']"

    а надо так )))

    name="prices[<?php echo $product_value_row; ?>][product_id]"