как выводить, если многомерный массив в php - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть этот массив

array (size=3)
  1 => 
    array (size=5)
      'produs' => 
        array (size=3)
          0 => string 'prajitura cu nuca' (length=17)
          1 => string 'prajitura cu morcovi' (length=20)
          2 => string 'prajitura cu morcovi' (length=20)
      'creatorchoise' => int 9
      'ambalaj' => string 'caserola' (length=8)
      'capacitate' => string '15' (length=2)
      'cantitate' => string '1' (length=1)
  2 => 
    array (size=5)
      'produs' => string 'prajitura cu nuca' (length=17)
      'creatorchoise' => int 28
      'ambalaj' => string 'platou' (length=6)
      'capacitate' => string '30' (length=2)
      'cantitate' => string '1' (length=1)

Я хочу вывести значения, поэтому я сделал это

foreach ($_SESSION['cos'] as $key => $value){

    $creatorchoise = $value['creatorchoise'];  
    $ambalaj = $value['ambalaj'];
    $capacitate = $value['capacitate'];
    $cantitate = $value['cantitate'];

    if (!is_array($value['produs'])){

        $produs = $value['produs'];

    } else {

         foreach ($value['produs'] as $row => $produs){



         }
    echo "produs: " . $produs . " /ambalaj: " . $ambalaj . " / capacitate: " . $capacitate . " / cantitate: " . $cantitate . "<br>";        
    }

проблема начинается, когда продукт является массивом, я знаю, что я повторяю из массив продуктов l oop

любые предложения?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

Если $produs является массивом, вы должны получить доступ к значению внутри foreach

foreach ($value['produs'] as $row => $produs){
    // access $produs here
}

Если вы хотите отобразить все значения из массива с помощью разделителя, вы также можете использовать взорваться

$produs = "";
if (!is_array($value['produs'])){
    $produs = $value['produs'];
} else {
    $produs = implode(',', $value['produs']);
}

echo "produs: " . $produs . " /ambalaj: " . $ambalaj . " / capacitate: " . $capacitate . " / cantitate: " . $cantitate . "<br>";
0 голосов
/ 23 февраля 2020

Вы можете привести строку к массиву:

<?php

$data =
[
    [
        'products' => 'Gold and shiny'
    ],
    [
        'products' => [
            'Silver beads',
            'Green emeralds'
        ]
    ]
];

foreach($data as $item) {
    $products = (array) $item['products'];
    foreach($products as $product) {
        echo $product, "\n";
    }
}

Вывод:

Gold and shiny
Silver beads
Green emeralds
...