在多数组PHP中保存时,字符串值已更改

在多数组PHP中保存时,字符串值已更改,php,arrays,string,input,foreach,Php,Arrays,String,Input,Foreach,我从数据库中提取并将日期和小时字符串保存在数组中: $array_likes_Days=$wpdb->get_results("SELECT time , totalLikesDay FROM pstableliker WHERE likeUrl='".$url_selec."' AND totalLikesDay !=0 ;"); $arrayDateHours; $cont1=0; $cont2=0; foreach ($array_likes_Days as $key =&g

我从数据库中提取并将日期和小时字符串保存在数组中:

$array_likes_Days=$wpdb->get_results("SELECT time  , totalLikesDay  FROM pstableliker WHERE likeUrl='".$url_selec."' AND totalLikesDay !=0 ;");
$arrayDateHours;
$cont1=0; 
$cont2=0; 
foreach ($array_likes_Days as $key => $row) {

    $arrayDateHours[$cont1]=substr($row->time, 0, -9);
    var_dump(substr($row->time, 0, -9).'__'.$arrayDateHours[$cont1]);

    $arrayDateHours[$cont1][$cont2]=date('H:i', strtotime($row->time));
    var_dump(substr($row->time, 0, -9).'__'.$arrayDateHours[$cont1]);

    $cont1++;
    $cont2++;
    }
在第一次var_转储中,输出:
2015-07-21\uuu 2015-07-21
一切顺利

但在此行保存小时后:
$arrayDateHours[$cont1][$cont2]=date('H:i',strottime($row->time))
第二个var_转储输出:
2015-07-21_uuu0015-07-21
显示数组的值已更改为:
2015-07-21->0015-07-21
,为什么在多数组中保存时会发生这种情况

我想在数组中保存日期和小时,如下所示:

2015-07-21-->01:24
          -->04:12
          -->12:40
试一试

输出

array (size=1)
  '2015-08-19' => 
    array (size=3)
      0 => string '05:11:44' (length=8)
      1 => string '05:15:11' (length=8)
      2 => string '05:17:38' (length=8)

试着换掉这条线

$arrayDateHours[$cont1][$cont2]=date('H:i', strtotime($row->time));

它将把数组中的数据保存为

$arrayDateHours= array(1) {  ["2015-07-21"]=>  array(2) {    
  [0]=>
  string(1) "01:24"
  [1]=>
  string(1) "04:12"    } }

您可以将日期定义为数组的索引。将
$arrayDateHours[$cont1][$cont2]
更改为
$arrayDateHours[$cont2]
@Hassan因为我想在数组中保存该日期的日期和小时数,我只需更新问题您没有将substr($row->time,0,-9)存储在变量中的任何位置,并使用它存储在$arrayDateHours[$cont1][$cont2]@哈桑,这将覆盖第一个作业$arrayDateHours[$cont1]必须是一个数组,其中包含日期元素作为一个元素,时间范围作为第二个元素。@Orange您认为保存日期和她的小时的唯一方法是将每个日期独立地保存在数组中,然后将该数组保存在多数组中吗?在这种情况下,不需要使用$i<代码>$arrayDateHours[$time[0]][]=$time[1]很好用。@Robertomasimopatarabrianco我很高兴为您效劳:)@Robertomasimopatarabrianco是
$arrayDateHours[$time[0]][=$time[1]将给出相同的结果。
$arrayDateHours[$cont1][]=date('H:i', strtotime($row->time));
$arrayDateHours= array(1) {  ["2015-07-21"]=>  array(2) {    
  [0]=>
  string(1) "01:24"
  [1]=>
  string(1) "04:12"    } }