(添加更多信息)你好,我有一些麻烦填充数组与php,我使mysql查询2个日期之间的数据,这些是结果:
"SELECT hours FROM dates WHERE id='2' AND (day BETWEEN 'TODAY' AND 'TODAY +2 DAYS') ORDER BY day ASC, hours ASC" [Seudo code]
0-> 1:data10 2:- 3:-
1-> 1:data11 2:- 3:-
2-> 1:data12 2:- 3:-
3-> 1:- 2:data23 3:-
4-> 1:- 2:data24 3:-
5-> 1:- 2:data25 3:-
6-> 1:- 2:- 3:data36
7-> 1:- 2:- 3:data37
8-> 1:- 2:- 3:data38
html结果从上面的数组
但我需要的是这样的东西:
0-> 1:data10 2:data23 3:data36
1-> 1:data11 2:data24 3:data37
2-> 1:data12 2:data25 3:data38
html result with reorder array
并且如果只有一个(或两个)列/s有值,则其他/s的值/s应该是"-"
0-> 1:data10 2:data20 3:data30
1-> 1:-11 2:data21 3:-31
2-> 1:data12 2:-22 3:data32
是否有一种方法来删除或添加"-"从数组和重新排序其他值和键?谢谢!PD:如果我遗漏了什么数据,请告诉我。
从数组中删除一些索引后如果你想获得相同索引格式的数组或者使用reindex try with
array_values($array);
这个数组函数重新排列数组索引。享受Stackoverflow。
首先按此代码删除数组值:
unset($array[$index]);
然后重新排序:
array_values($array);
我为你的问题写了以下代码。你想结果的内部数组有3个键,这就是为什么我写了"if($s_key>= 3)",您可以根据需要进行更新。目前你不想要'-',这就是为什么我写了"if($val != '-')",你可以根据你的需要添加更多的条件。
谢谢。
快乐编码
//sample data
$data = array (array('111','-','222'),array('3333','-','444'),array('-','-','444'),array('4545','77','444'),array('-','454','444'),array('-','98','444'));
$formatted_data = array();
$f_key = $s_key = 0;
foreach($data as $arr_key => $arr) {
foreach($arr as $key => $val){
if($val != '-'){
$formatted_data[$f_key][$s_key] = $val;
$s_key++;
if($s_key >= 3){
$s_key = 0;
$f_key++;
}
}
}
}
echo '<pre>';
print_r($formatted_data);