【问题标题】:Combine data from several array to one array将多个数组中的数据合并到一个数组中
【发布时间】:2019-03-14 11:07:58
【问题描述】:

我编写了一个脚本,该脚本将多个数组的结果相等地组合在一起。该脚本运行良好,但我想更轻松地完成它。我的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 ..)
?>

【问题讨论】:

  • 你已经在做合并了,为什么还要再做一次?如果您的问题是删除空单元格,只需在合并后进行过滤即可。
  • 重点是我在几个数组中有相同的数据,我想按照它在我的代码中接收到的方式来排列它
  • 对于给出的示例,您的预期输出是什么? a,a,a,..,b,b,b,...c,c,c,...?
  • a,b,c...a,b,c...a,b,c...

标签: php


【解决方案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 个数组,而且它不是超级重要,应该这样做

【讨论】:

    猜你喜欢
    • 2020-02-02
    • 2022-09-27
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多