我如何使用foreach循环在PHP中输出'winner'的值数组?

问题描述

$famousMeals = [
    1 => ['name' => 'Currywurst mit Pommes','winner' => [2001,2003,2007,2010,2020]],2 => ['name' => 'Hähnchencrossies mit Paprikareis','winner' => [2002,2004,2008]],3 => ['name' => 'Spaghetti Bolognese','winner' => [2011,2012,2017]],4 => ['name' => 'Jägerschnitzel mit Pommes','winner' => 2019]
];

如上所述的问题。我已经尝试了一切:(

解决方法

使用array_column并将其循环

$famousMeals = [
    1 => ['name' => 'Currywurst mit Pommes','winner' => [2001,2003,2007,2010,2020]],2 => ['name' => 'Hähnchencrossies mit Paprikareis','winner' => [2002,2004,2008]],3 => ['name' => 'Spaghetti Bolognese','winner' => [2011,2012,2017]],4 => ['name' => 'Jägerschnitzel mit Pommes','winner' => 2019]
];

$winners = array_column($famousMeals,'winner');

foreach($winners as $winner) {
  print_r($winner);
}
,

您可以像这样使用foreach访问父数组的任何位置

<?php

$famousMeals = [
    1 => ['name' => 'Currywurst mit Pommes','winner' => 2019]
];

foreach($famousMeals as $meal) {
    echo "<br>";
    echo "Meal: " . $meal['name'] . "\n";
    echo "Winners: " . json_encode($meal['winner']);
    echo "<br>";
}

请注意,位置$ meal ['winner']是一个数组,因此您必须使用json_encode来显示数据。