Как исправить Eror Get Data In Laravel - PullRequest
0 голосов
/ 07 марта 2020

У меня есть функция для вычисления сходства:

Код:

function similarity(array $c, array $d)
{
    return array_sum(array_map(function ($v, $w) {
        return ($v * $w);
    }, $c, $d))
  /
  (
      array_sum(array_map(function ($w) {
          return ($w);
      }, $d))
  );
}

это скрипт, используемый для запуска функции сходства Код:

echo similarity(
  [1,3,3,3,3],
  [1,3,3,3,3]
);

как заменить числа 1,3,3,3,3 существующими данными в базе данных?

Я попытался использовать следующий скрипт, но столкнулся с проблемой. Мой код:

$pengetahuan = App\Pengetahuan::all();
foreach($pengetahuan as $pa2) {
  echo $pa2->no_kasus;
  echo " : ";
  echo similarity(
    [
      foreach($pa2->getdetailpengetahuan as $dp) {
        $dp->nilai;
      }
    ],
    [1,3,3,3,3]
  );
  echo '<br><br>';
}

ошибка сообщение:

syntax error, unexpected 'foreach' (T_FOREACH), expecting ']' 

Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Вы не можете использовать foreach внутри array в качестве аргумента функции.

Лучший подход - создать новый массив и передать его в качестве аргумента функции, как показано ниже:

$dpData = []; // create a new array
foreach($pa2->getdetailpengetahuan as $dp) {
        $dpData[] = $dp->nilai; // assign you data to that array
}

echo similarity(
    $dpData, // pass that array here
    [1,3,3,3,3]
  );
0 голосов
/ 07 марта 2020

Вы можете вызвать функцию подобия внутри foreach l oop. В настоящее время вы используете foreach внутри параметра функции / arg, который должен быть только одним массивом. Вы не можете передавать операции foreach как параметры и, следовательно, синтаксическую ошибку.

 foreach($pa2->getdetailpengetahuan as $dp) {
    echo similarity($dp->nilai, [1,3,..]);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...