【问题标题】:How do I take data from a 2D array, find repeating elements in first index and group relating elements from another index in PHP如何从二维数组中获取数据,在第一个索引中查找重复元素并从 PHP 中的另一个索引中对相关元素进行分组
【发布时间】:2016-07-06 00:49:52
【问题描述】:

我在PHP中有一个二维数组,第一个索引是索引中项目的名称,其他索引是项目的其他信息。第一个索引中有重复名称,但第二个索引中没有。

我想要做的是将数组添加到表中,但每个名称只显示一次,并且第二个索引中的所有唯一数据都显示在下拉列表中(选择标记)。

所以我有:

$array[0][0] = foo
$array[0][1] = foo
$array[0][2] = foo

$array[0][3] = bar
$array[0][4] = bar

和

$array[1][0] = 1
$array[1][1] = 2
$array[1][2] = 3

$array[1][3] = 4
$array[1][4] = 5

我想要的是一张桌子

foo | (select from 1-3)
bar | (select from 4-5)

【问题讨论】:

    标签: php html arrays forms


    【解决方案1】:
    <?php error_reporting(E_ALL);
    
    $array[0][0] = 'foo';
    $array[0][1] = 'foo';
    $array[0][2] = 'foo';
    
    $array[0][3] = 'bar';
    $array[0][4] = 'bar';
    
    $array[1][0] = 1;
    $array[1][1] = 2;
    $array[1][2] = 3;
    
    $array[1][3] = 4;
    $array[1][4] = 5;
    
    // get new array without duplicate values
    $uniqueValueArray = array_unique($array[0]);
    
    $result = [];
    
    foreach ($uniqueValueArray as $value)
    {
        $row = ['value' => $value, 'ids' => []];
    
        // get keys form value array for given value
        $valueKeys = array_keys($array[0], $value);
    
        // find id form ids array for this value
        foreach ($valueKeys as $key)
        {
            $row['ids'][] = $array[1][$key];
        }
    
        $result[] = $row;
    }
    
    var_dump($result);
    

    【讨论】:

      猜你喜欢
      • 2020-11-27
      • 1970-01-01
      • 2012-07-19
      • 2018-12-24
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      相关资源
      最近更新 更多