我编写了一个脚本,将来自多个数组的结果平均合并。该脚本运行良好,但我想更轻松地实现。我对php编程的了解很差。我对经验丰富的程序员有一个疑问,您是否知道如何使用更好的解决方案来获得相同的结果?
我的代码:
<?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 ..)
?>
答案 0 :(得分:1)
$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个数组,并且不是很重要,那就应该这样做