foreach里面的foreach只返回最后的结果?

Amy*_*ala 0 php arrays foreach

我对PHP比较陌生,阵列让我很适合!我正在尝试学习如何修改数组并从修改中创建新数组,但我的尝试只返回foreach循环中的最后一个数组键.

function stuff() {
  $items = array('shirt', 'shoes', 'pants');
  $colors = array('red', 'blue', 'green');
  $list = array();
  foreach($items as $item) {
    foreach($colors as $color) {
      $list[$item] = array($color => 'available');
    }
  }
  return $list;
}
Run Code Online (Sandbox Code Playgroud)

我希望它返回的是:

Array
(
  [shirt] => Array
  (
    [red] => available
    [blue] => available
    [green] => available
  )

  [shoes] => Array
  (
    [red] => available
    [blue] => available
    [green] => available
  )

  [pants] => Array
  (
    [red] => available
    [blue] => available
    [green] => available
  )
)
Run Code Online (Sandbox Code Playgroud)

但是,它似乎只返回第二个数组中的最后一项...

Array
(
  [shirt] => Array
  (
    [green] => available
  )

  [shoes] => Array
  (
    [green] => available
  )

  [pants] => Array
  (
    [green] => available
  )
)
Run Code Online (Sandbox Code Playgroud)

小智 10

更改$list[$item] = array($color => 'available');$list[$item][$color] = 'available';你的问题将得到解决.