2014-10-11 133 views
1

我是新来的PHP,并且正在尝试编写一个脚本,它以“2014年1月23日下午11:01”的形式记录时间戳,并将它们分成一个月数组,日期,年份,小时和分钟。这是我到目前为止的代码:PHP:For循环中的未定义变量

 $raw_data= array("January 20, 1993 at 10:20PM", "September 6, 1991 at 6:23PM"); 
     var_dump($raw_data); 
     $num_dates= count($raw_data); 

//Step 1: break content into month, day, year, hour, and minutes 
    for ($i=0; $i==($num_dates-1); $i++) { 
     $partial_data = implode(preg_split("/[A-Z]{2}/", $raw_data[$i])); 
     $broken_data[$i] = preg_split("/[\s,:]/", $partial_data);   
     unset($broken_data[$i][2]); 
     unset($broken_data[$i][3]); 
    } 

    var_dump($broken_data); 

代码似乎没有的var_dump运行良好,但是当我将其添加PHP的告诉我,$ broken_data是一个不确定的变量。任何人都可以看到我正在犯的一个明显的新秀错误?

在此先感谢。

+2

从以前的问题中获得任何知识吗?我不这么认为http://stackoverflow.com/questions/26308756/formatting-php-for-loop/26308823 – Cheery 2014-10-11 00:37:05

+0

你可能没有设置数组的所有元素。所以最后阵列完全没有设置。 – Meer 2014-10-11 00:47:18

回答

1

更改您的循环条件以使用比较,而不是相等。

for ($i = 0; $i < ($num_dates - 1); $i++) 

您的循环内的代码永远不会执行,因为循环条件在第一次尝试时失败。

+0

Oooo!我学会了在MatLab中用for循环表示的代码,从i = __到i = __。我以为我告诉循环从零开始直到(num_dates-1)。谢谢! – boulderz 2014-10-11 01:58:54