2016-10-05 114 views
0

(添加详细信息)你好,我有一些麻烦,填充用PHP中的数组 ,我做一个MySQL查询到2日期间获得的数据,而这些都是结果:PHP数组删除一些价值观和重新排序

"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 result from above array

但我需要它是这样的:

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

并且如果只有一个(或2)列/秒有一个值其它/ S值/ s应该是“ - ”

0-> 1:data10 2:data20  3:data30 
1-> 1:-11  2:data21  3:-31 
2-> 1:data12 2:-22  3:data32 

有没有办法删除或添加“ - ”从数组并重新排序其他值和键? 谢谢! PD:请让我知道,如果我错过了一些数据。

+1

CA你提供了你的代码吗?意味着你已经完成了 –

+0

从数组中删除“ - ”并不难,但问题在于你想如何将数据重新排列到新阵列中。从你的例子我不知道0-> 2:数据或0-> 3:数据来自哪里。 – HZS

+1

如果你提供了你的实际查询,那么它可能会提供一些你正在努力实现的内容 - 目前没有足够的信息来提供有意义的答案 –

回答

0

删除之后从阵列的一些指标,你想在同一索引格式阵列或者说重新编制与

array_values($array); 

试试这个阵列功能重新排列数组索引。享受Stackoverflow。

0

我为您写了以下代码问题。你希望结果的内部数组有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);

+0

感谢您的回答,代码连接阵列键的数据像这样0-> 7:008:009:00,在1-> hourshourshours,我试图构建类似0-> [1] 7:00 [ 2] 8:00 [3] 9:00,感谢问候 –

+0

我编辑了我的回答,从中删除了测试代码行。 输出: 阵列(4){ [0] => 阵列(3){ [0] => 串(3) “111” [1] => 串(3) “222” [2] => 串(4) “3333” } [1] => 阵列(3){ [0] => 串(3) “444” [1] => 串( 3) “444” [2] => 串(4) “4545” } [2] =>数组 (3){ [0] => STR ING(2) “77” [1] => 串(3) “444” [2] => 串(3) “454” } [3] => 阵列(3){ [0] => 串(3) “444” [1] => 串(2) “98” [2] => 串(3) “444” } } –

+0

输出数组: 阵列 ( [0] =>数组 ( [0] => 111 [1] => 222 [2] => 3333 ) [1] =>数组 ( [0] => 444 [1] => 444 [2] => 4545 ) [2] =>数组 ( [0] => 77 [1] => 444 [2] => 454 ) [3] =>数组 ( [0] => 444 [1] => 98 [2] => 444 ) ) 这就是你想要的朋友? –

0

第一由此代码删除数组值:

unset($array[$index]); 

然后再顺序是这样的:

array_values($array);