Combine data from several array to one array
我编写了一个脚本,它将多个数组的结果平均地组合在一起。这个脚本很好用,但我想做得更容易些。我的PHP编程知识很差。我有一个问题要问有经验的程序员,你知道我怎样才能用更好的解决方案得到同样的结果吗?
我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php $a = array('a','a','a','a','a','a','a','a'); $b = array('b','b','b','b','b','b','b','b'); $c = array('c','c','c','c','c','c','c','c'); $count = count(array_merge($a, $b, $c)); $results = array(); for ($i=1; $i<$count; $i++){ if (isset($a[$i]) && !empty($a[$i])){ $results[] = $a[$i]; } if (isset($b[$i]) && !empty($b[$i])){ $results[] = $b[$i]; } if (isset($c[$i]) && !empty($c[$i])){ $results[] = $c[$i]; } } print_r($results); // array(a, b, c, a, b, c ..) ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $a = array('a','a','a','a','a','a','a','a'); $b = array('b','b','b','b','b','b','b','b'); $c = array('c','c','c','c','c','c','c','c'); for ($i=0; $i < max(count($a), count($b), count($c)) ; $i++) { foreach (array('a', 'b', 'c') as $l) { if (!isset($$l[$i]) || empty($$l[$i])) {continue; }; $results[] = $$l[$i]; }; }; print_r($results); |
请注意,在代码中,您从$i=1开始,而您可能希望从$i=0开始(数组的第一个条目是0,而不是1)。
根据需要,代码可以进一步改进:如果您只有3个数组,而且它不是非常重要,那么应该这样做。