我需要超越这个[问题]的结果:Comparing database result and multidimensionnal array
我需要为数组添加值。
我寻找钥匙(即:“2017-03-30”)。如果密钥存在,我需要将一小时添加到与相关密钥/日期关联的现有数组值。为了让自己尽可能清楚:我有一个约会+小时,如'2017-03-30'+ '11:00'。
我使用数组键存在,如果结果为true,我需要将小时推入子数组。
'2017-03-30' => array('9:00','10:00','14:00')
//needs to become
'2017-03-30' => array('9:00','10:00','14:00','11:00')
//or
'2017-03-30' => array('9:00','10:00','11:00','14:00')
如果结果为false,我需要将日期+小时添加到数组中。
array( '2017-03-24' => array('14:00'), '2017-03-29' => array('15:00') )
//will become :
array( '2017-03-24' => array('14:00'), '2017-03-29' => array('15:00'), '2017-03-30' => array('11:00') )
我搜索了一个函数,但是array_push和array_merge都不会完成这项工作。有没有办法实现这个目标?
答案 0 :(得分:1)
我会使用这样的泛型函数,遗憾的是我认为PHP的一般函数不存在
function array_push_sub(&$table, $key, $value) {
if(array_key_exists($key, $table)) $table[$key][] = $value;
else $table[$key] = [$value];
}
$myArray = [];
array_push_sub($myArray, "2017-03-21", "09:00");
//Please note that $table[$date][] = $time;
//Is the same as array_push($table[$date], $time);
答案 1 :(得分:0)
只需使用$arrayVariable['wantedKey'] = $insertedArray
,例如
$startArray = array( '2017-03-24' => array('14:00'), '2017-03-29' => array('15:00') );
$startArray['2017-03-30'] = array('11:00');
这会让你得到你想要的数组。