эквивалент для LinkedHashMap в php?

В настоящее время мое приложение работает на Java, и я отправляю LinkedHashMap (получение данных из Excel) в службу. Сейчас я конвертирую свое приложение в php.

Мне нужно создать LinkedHashMap в PHP.

String data[][];  // Excel data in the form of 2-D Array.
LinkedHashMap<Integer, ArrayList> mapToSend = null;
mapToSend = new LinkedHashMap<Integer, ArrayList>();for (int i = 0; i < data[0].length; i++) {
ArrayList<String> ar = new ArrayList<String>();
for (int j = 0; j < numberOfRecords; j++) {
if (data[j][i] != null) {
data[j][i] = data[j][i].toString();

ar.add(data[j][i]); // Add in array through coloumnwise
} else {
ar.add("Empty");
}
}
mapToSend.put(i, ar); // making a map like {0=[coloumn data1],1=[coloumn data2]....}
}

Так я создаю карту для отправки на мой сервис.

я использую PHPExcel читать данные из Excel.

Мне нужно создать карту и отправить ее в службу. Пожалуйста, Предложите.

3

Решение

Код, который вы предоставили, на самом деле больше похож на «нормальный» массив в PHP. Массивы в PHP могут действовать как массивы в более традиционном смысле, карты, как ваша Java (за исключением того, что они все еще обладают порядком сверх того, что подразумевается самими ключами).

Ваша реализация выглядит как ниже в PHP. Там есть ряд предположений о вводе данных и требуемой бизнес-логике, я бы написал несколько тестовых случаев, которые определяют такие случаи, как ‘true’, 0, » для требуемого вывода. В основном, следите за всеми способами strval($data[$j][$i]) может вести себя по-другому.

Вы создаете карту из строки integer => в Java, но для меня она выглядит как обычный массив.

$data = array();

//the input data
$data[] = array("val1", "val2");
$data[] = array("val3", 0);
$data[] = array("val4");
$data[] = array("val5", "");
$data[] = array(0, "val6");

$numberOfRecords = count($data); //assuming all of it...

$mapToSend = array();

for($i = 0; $i < count($data[0]); $i++) {
$ar = array();
for($j = 0; $j < $numberOfRecords; $j++) {
if( ($val = strval($data[$j][$i])) != "" ) {//the comparison of your choice, depending on the logic/input
$ar[] = $val;
} else {
$ar[] = "Empty";
}
}
$mapToSend[] = $ar; //naturally, this will have indexes 0, 1, 2...
}

var_dump( $mapToSend );

Выходы:

array(2) {
[0]=>
array(5) {
[0]=>
string(4) "val1"[1]=>
string(4) "val3"[2]=>
string(4) "val4"[3]=>
string(4) "val5"[4]=>
string(1) "0"}
[1]=>
array(5) {
[0]=>
string(4) "val2"[1]=>
string(1) "0"[2]=>
string(5) "Empty"[3]=>
string(5) "Empty"[4]=>
string(4) "val6"}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]