PHP在多维数组中推送简单数组值无效

PHP在多维数组中推送简单数组值无效,php,arrays,multidimensional-array,array-push,Php,Arrays,Multidimensional Array,Array Push,编辑:更新的代码。请参阅注释行: 这是我的问题: 我有两个阵列: $numbers = array(0,3,8); $data = array('January' => array('BATH' => array('ID', 'user', 'type'), 'KITCHEN' => array('ID', 'user', 'type')), 'february' => array('BATH' => array('ID', 'user', 'type'), 'K

编辑:更新的代码。请参阅注释行:

这是我的问题:

我有两个阵列:

$numbers = array(0,3,8);

$data = array('January' => array('BATH' => array('ID', 'user', 'type'), 'KITCHEN' => array('ID', 'user', 'type')), 'february' => array('BATH' => array('ID', 'user', 'type'), 'KITCHEN' => array('ID', 'user', 'type')), 'march' => array('BATH' => array('ID', 'user', 'type'), 'KITCHEN' => array('ID', 'user', 'type')));
预期输出必须为:

array (size=6)
  'January' => 
    array (size=2)
      'BATH' => 
        array (size=3)
          0 => string 'ID' (length=2)
          1 => string 'user' (length=4)
          2 => string 'type' (length=4)
      'KITCHEN' => 
        array (size=3)
          0 => string 'ID' (length=2)
          1 => string 'user' (length=4)
          2 => string 'type' (length=4)
      'total_lunar' => int '0' // // This is the first value from first array
  'february' => 
    array (size=2)
      'BATH' => 
        array (size=3)
          0 => string 'ID' (length=2)
          1 => string 'user' (length=4)
          2 => string 'type' (length=4)
      'KITCHEN' => 
        array (size=3)
          0 => string 'ID' (length=2)
          1 => string 'user' (length=4)
          2 => string 'type' (length=4)
       'total_lunar' => int '3' // This is the second value from first array
  'march' => 
    array (size=2)
      'BATH' => 
        array (size=3)
          0 => string 'ID' (length=2)
          1 => string 'user' (length=4)
          2 => string 'type' (length=4)
      'KITCHEN' => 
        array (size=3)
          0 => string 'ID' (length=2)
          1 => string 'user' (length=4)
          2 => string 'type' (length=4)
       'total_lunar' => int '8' // This is the last value from first array
我的PHP代码是:

for ($i = 0; $i < count($numbers); $i++) 
{
    foreach ($data as $key => $value) 
    {
        $data[$key]['total_lunar'][$i] =  $numbers[$i];
    }
}

['total_lunar']
键应返回一个值作为上述预期输出,而不是所有数组值。到处寻找解决方案,但无法解决此问题。

保持简单。我想这就是你要找的

$n=0;
foreach($data as &$d) {
    $d['total_lunar'] = $numbers[$n++];
}
通过使用以下命令,您将获得的预期输出:

echo '<pre>';
print_r($data);
echo '</pre>';
echo';
打印(数据);
回声';

保持简单。我想这就是你要找的

$n=0;
foreach($data as &$d) {
    $d['total_lunar'] = $numbers[$n++];
}
通过使用以下命令,您将获得的预期输出:

echo '<pre>';
print_r($data);
echo '</pre>';
echo';
打印(数据);
回声';


您的
$data
数组的第二级是键
'BATH'
等,而不是数字索引。
$data[$key][$i]
不存在可推送的。只需使用
$data[$key][$i]=$numbers[$i]查看上的注释您似乎仍然存在数组问题。如有疑问,请输入
print_r($data[$key])
在您的代码中可以看到您正在查看的数组中真正的内容
数组推送($data[$key]['0'],$numbers[$i])是的,感谢您这次的理解。
$data
数组的第二级是键
'BATH'
等,而不是数字索引。
$data[$key][$i]
不存在可推送的。只需使用
$data[$key][$i]=$numbers[$i]查看上的注释您似乎仍然存在数组问题。如有疑问,请输入
print_r($data[$key])
在您的代码中可以看到您正在查看的数组中真正的内容
数组推送($data[$key]['0'],$numbers[$i])是的,谢谢你这次的理解。更新帖子。请看。所以您想要一个total_lunar键而不是[0]?我添加了它,但它会返回
numbers
array中的所有值,而不是像我预期的输出那样逐个返回。是的,它是功能性的。非常感谢。我曾经尝试过这个,但是在
foreach
更新的帖子中,
&$d
缺少
&
。请看。所以您想要一个total_lunar键而不是[0]?我添加了它,但它会返回
numbers
array中的所有值,而不是像我预期的输出那样逐个返回。是的,它是功能性的。非常感谢。我以前试过这个,但在
foreach
中的
&$d
中缺少
&