Heim > Artikel > Backend-Entwicklung > 请教各位老师关于PHP数组的问题
各位老师,初学PHP,有些问题百度找不到,便来这里请教,还望各位老师多多包涵与帮助,感激不尽。
我现在遇到的问题是这样的:
通过一个MYSQL命令,得到一个列表,并将这个列表存到一个数组。
//定义日期数组 $search_date=array(); //进入FOR循环,从开始时间循环到结束时间 //转化为UNIX时间戳进行操作 for($i=strtotime($start_time);$i<strtotime($stop_time)+86400;$i+=86400) { $search_date_num = date('Y-m-d', $i); $search_date[]= $search_date_num; }
Array ( [0] => 16777221 [1] => 16777222 ) Array ( [0] => 16777221 [1] => 16777222 )
$newArr= array();$search_date = array(0=>'2014-08-10' ,1=>'2014-08-11');$num = 0;foreach ($search_date as $k => $v){ $newArr[$num][$k] = $v; $num++;}var_dump($newArr);
不太明白你的意思
请在说的清楚一点
xuzuning老师。
是有一个1维数组A,值是日期。
然后我通过foreach A这个数组。
将A的值作为条件去数据库取另一些值,这些值是一个列表,可能有几十个甚至几万个。
我需要将取到的值按顺序存为一个1维的数组。
现在遇到的问题是:
当日期是1时,取到数值列表并存进数组C;
当日期为2时,又取到一份C。
这时,打印C这个数组,数组变成了非1维数组,而是有两个数组。
如果将C变成一个1维数组,并将多次循环的结果都存进这一个数组?
你是怎么把结果保存到数组的?
$log_id = array(); foreach ($search_date as $v) { //查询当日所有符合条件的id $sql = "Select distinct log_id from $s where DATE(log_time)='".$v."'"; $result=mysql_query($sql,$link); //通过一个循环将值存入 while($arr = mysql_fetch_assoc($result)) { $log_id [] = $arr['log_id ']; }
那么 foreach 结束的时候,$log_id 不就是个一维数组吗?
是呀。可是每次循环都会生成一个1维数组。这样10次循环就有了10个1维数组。
我想要将10次循环的结果存到一个1维数组里面去。
请问有什么方法吗?
那你并没贴全这部分代码呀,我怎么知道你又做了什么?
不好意思,我贴全一点。
//定义日期数组$search_date=array();//进入FOR循环,从开始时间循环到结束时间 //转化为UNIX时间戳进行操作for($i = strtotime($start_time); $i < strtotime($stop_time)+86400;$i+= 86400){ $search_date_num = date('Y-m-d', $i); $search_date[]= $search_date_num;}//以上,会得到数组$search_date//格式为:Array ( [0] => 2014-07-21 [1] => 2014-07-22 )//然后:$log_id = array();$s =' s11';foreach ($search_date as $v) { //查询当日所有符合条件的id $sql = "Select distinct log_id from $s where DATE(log_time)='".$v."'"; $result=mysql_query($sql,$link); //通过一个循环将值存入 while($arr = mysql_fetch_assoc($result)) { $log_id [] = $arr['log_id ']; }
Array ( [0] => 16777221 [1] => 16777222 [2] => 16777223) Array ( [0] => 26777221 [1] => 26777222 [2] => 26777223)
Array ( [0] => 16777221 [1] => 16777222 [2] => 16777223 [3] => 26777221 [4] => 26777222 [5] => 26777223)
就你贴出的这些代码,$log_id 是不可能为二维数组的
array_merge???
不是二维数组喔,是多个1维数组,每次循环都产生了一个1维数组~~
array_merge???
不是array_merge,array_merge() 函数把两个或多个数组合并为一个数组,你的不是这个效果。谢谢net8386308,我要的是每次循环产生的数组都按序存入到一个数组,在某一个循环里面是只有一个1维数组的,所以这个循环里面不可能合并。也许可以传值到一个函数里面去合并?但循环的天数不固定,那个函数也不知道该如何写。
已解决,感谢各位老师的指教。
就你贴出的这些代码,$log_id 是不可能为二维数组的