gpt4 book ai didi

java - 将简单的 JAVA 代码转换为 PHP(数组)

转载 作者:行者123 更新时间:2023-12-01 09:03:26 24 4
gpt4 key购买 nike

我对PHP不熟悉,很难理解PHP中的数组。我有一些问题需要解决,我编写了简单的 JAVA 类来解决它,但我需要它在 PHP 中。有人可以帮我将下面的代码转换为 PHP 吗?

Java代码:

public static void main(String[] args) {
Map<Integer, List<Integer>> outputData = new HashMap<Integer,List<Integer>>();
int[][] inputData = new int[6][2];
inputData[0][0] = 1;
inputData[0][1] = 22;
inputData[1][0] = 1;
inputData[1][1] = 33;
inputData[2][0] = 2;
inputData[2][1] = 44;
inputData[3][0] = 2;
inputData[3][1] = 55;
inputData[4][0] = 3;
inputData[4][1] = 66;
inputData[5][0] = 1;
inputData[5][1] = 77;

// process input data
for(int i = 0;i<=5;i++){
if(outputData.containsKey(inputData[i][0])){
List<Integer> list = outputData.get(inputData[i][0]);
list.add(inputData[i][1]);

}else{
List<Integer> list = new ArrayList<Integer>();
list.add(inputData[i][1]);
outputData.put(inputData[i][0], list);
}
}

System.out.println("INPUT DATA DISPLAY");
for(int i = 0;i<=5;i++){
System.out.println("i: "+inputData[i][0] + " = "+inputData[i][1]);
}
System.out.println("OUTPUT MAP");
for(Integer i : outputData.keySet()){
List<Integer> l = outputData.get(i);
System.out.print("i: "+i+" = ");
for(Integer j : l){
System.out.print(j + " ");
}
System.out.println();
}
}

我有输入表:

i: 1 = 22
i: 1 = 33
i: 2 = 44
i: 2 = 55
i: 3 = 66
i: 1 = 77

我需要它按键对元素进行分组。这是输出:

i: 1 = 22 33 77 
i: 2 = 44 55
i: 3 = 66

在 JAVA 中它按预期工作,但在 PHP 中我无法编写它,尽管我阅读了一些教程、手册和示例。

[编辑]:真正的问题是:我有一个有N行的excel文件(实现了加载excel)。每行有 2 列。

enter image description here

我想这样分组:

  • B 列中的数据应按 A 列中的值进行分组。

在这种情况下:

  • 对于值 1,将为 123、63、3(第 1、2 和 6 行)
  • 对于值 2,将为 3、23(第 3 行和第 4 行)
  • 对于值 3,将为 55、234(第 5 行和第 7 行)

最佳答案

必须更改输入数据的格式,因为在 PHP 中键必须是唯一的。我测试过这段代码:(比JAVA简单得多)(因此输入是关联数组的数组。)

<?php

function groupByKey($input) {
$result = array();

foreach($input as $item) {
foreach($item as $key => $value) {
$result[$key][] = $value;
}
}

return $result;
}

$data = array(
array(1 => 22),
array(1 => 33),
array(2 => 44),
array(2 => 55),
array(3 => 66),
array(1 => 77)
);

print_r($data);
echo "\n\n";

$result = groupByKey($data);

print_r($result);

结果:

Array
(
[0] => Array
(
[1] => 22
)

[1] => Array
(
[1] => 33
)

[2] => Array
(
[2] => 44
)

[3] => Array
(
[2] => 55
)

[4] => Array
(
[3] => 66
)

[5] => Array
(
[1] => 77
)

)


Array
(
[1] => Array
(
[0] => 22
[1] => 33
[2] => 77
)

[2] => Array
(
[0] => 44
[1] => 55
)

[3] => Array
(
[0] => 66
)

)

关于java - 将简单的 JAVA 代码转换为 PHP(数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com