在PHP中添加到多维数组

b. *_*eck 6 php mysql arrays

我有一个从数据库返回的数组,如下所示:

$data = array(201 => array('description' => blah, 'hours' => 0),
              222 => array('description' => feh, 'hours' => 0);
Run Code Online (Sandbox Code Playgroud)

在下一段代码中,我正在使用a foreach并检查另一个表中的键.如果下一个查询返回数据,我想用新的小时值更新该键的数组中的'hours'值:

foreach ($data as $row => $value){
   $query = $db->query('SELECT * FROM t WHERE id=$row');
   if ($result){
      $value['hours'] = $result['hours'];
   }
Run Code Online (Sandbox Code Playgroud)

一切都很好,除了我已经尝试了foreach循环的每个声明组合,但我不断得到错误,这$value['hours']是一个无效的引用.我试过宣布$value[]......但这也行不通.我不需要迭代,$value所以不需要另一个foreach循环.

当然,这比我的大脑感知更容易.

这是整个片段:

foreach($_gspec as $key => $value){

            $sql = sprintf('SELECT * FROM List WHERE specialtyID=%s', $key);
            $query = $db->query($sql);

            if ($query->num_rows() !== 0){

                $result = $query->row_array();
                $value['hours'] = $result['hours'];

            }
        }
Run Code Online (Sandbox Code Playgroud)

Ada*_*son 6

你要

$data[$row]['hours'] = $result['hours']

$row会被更好地命名为$key(就是这样!)

有些人会建议使用指针,但我发现这种方式对我来说更有意义.