将结果推入多维数组

时间:2017-03-21 15:27:23

标签: php

我需要超越这个[问题]的结果: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都不会完成这项工作。有没有办法实现这个目标?

2 个答案:

答案 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');

这会让你得到你想要的数组。