Передача вектора R в массив PHP

Я пытаюсь передать числовой вектор из R в массив в PHP.

index.php:

<?php
$n = 3;
$out = array();

exec("Rscript script.R $n", $out);

$length = count($out);
echo "length = ".$length."<br>";

for($i = 0; $i < $length; $i++)
echo "out[$i] = ".$out[$i]
?>

script.R:

#!/usr/bin/env Rscript

i <- as.numeric(commandArgs(TRUE))
print(i:10)

Выход:

length = 1
out[0] = [1] 3 4 5 6 7 8 9 10

Как видно из вышеприведенного вывода, PHP хранит вектор R как отдельный элемент массива. Как сохранить отдельные элементы вектора R в массиве PHP?

0

Решение

Я нашел решение в PHP-р.

Я изменил свой index.php как:

exec("Rscript my_script.R $n", $out);

$length = count($out);
for ($i = 0; $i < $length; $i++)
foreach (explode("\n", $out[$i]) as $row) {
If (strpos($row, ']') !== false)
$numbersAsStr = substr($row, strpos($row, ']') + 1);
else
$numbersAsStr = $row;
foreach (explode(' ', $numbersAsStr) as $potentialNumber)
if ($potentialNumber !== '')
array_push($result, 0 + $potentialNumber);
}
var_dump($result);

Выход:

array(8) { [0]=> int(3) [1]=> int(4) [2]=> int(5) [3]=> int(6) [4]=> int(7) [5]=> int(8) [6]=> int(9) [7]=> int(10) }
0

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

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

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