【问题标题】:Create groups of values from array values [duplicate]从数组值创建值组[重复]
【发布时间】:2015-08-21 10:11:35
【问题描述】:

我会尽力向您解释这个想法。我有一个值数组,我想知道是否有办法创建另一个组合值数组。所以,例如:

如果我有这个代码:

array('ec','mp','ba');

我希望能够输出如下内容:

'ec,mp', 'ec,ba', 'mp,ba', 'ec,mp,ba'

这可能吗?理想情况下,我不希望有像 'ec,mp''mp,ec' 这样的重复条目,因为它们是一样的

【问题讨论】:

标签: php arrays


【解决方案1】:

您可以任意决定始终将“较低”字符串放在首位。一旦你做出这个决定,它就只是一个直接的嵌套循环:

$arr = array('ec','mp','ba');
$result = array();
foreach ($arr as $s1) {
    foreach ($arr as $s2) {
        if ($s1 < $s2) {
            $result[] = array($s1, $s2);
        }
    }
}

【讨论】:

  • 这很好,它唯一没有做的就是将所有数组值组合成一个组合('ec,mp,ba'),但我可以解决这个问题。感谢您的快速解决方案:)
【解决方案2】:

你可以这样做:

$arr = array('ec','mp','ba', 'ds', 'sd', 'ad');

$newArr = array();

foreach($arr as $key=>$val) {
        if($key % 2 == 0) {
                $newArr[] = $val;
        } else {
                $newArr[floor($key/2)] = $newArr[floor($key/2)] . ',' . $val;
        }
}

print_r($newArr);

结果是:

Array
(
    [0] => ec,mp
    [1] => ba,ds
    [2] => sd,ad
)

【讨论】:

    【解决方案3】:

    你看过函数implode

    <?php
    
        $array = array('ec','mp','ba');
        $comma_separated = implode(",", $array);
    
        echo $comma_separated; // ec,mp,ba
    ?>
    

    您可以将其用作您的程序和您想要实现的目标的基础。

    【讨论】:

      猜你喜欢
      • 2018-07-09
      • 1970-01-01
      • 2019-08-28
      • 2023-03-21
      • 2015-12-01
      • 2022-09-30
      • 2019-12-20
      • 1970-01-01
      • 2021-12-05
      相关资源
      最近更新 更多