Как добавить значение int в 'i' для каждого человека в многомерном массиве каждый раз, когда он удовлетворяет выражению if - PullRequest
1 голос
/ 07 июня 2019

Я пытаюсь создать средневзвешенное значение на основе того, насколько хорошо каждый человек (у которого есть свой собственный массив для «имени», «пола», «возраста», «субъекта» и т. Д.) Соответствует критериям для клиента.

напр.Если они изучают правильный предмет, i +100 еще, если они изучают аналогичный предмет, i +75 иначе i * 1.

Но я стремлюсь обновить i для каждого кандидата одновременно.Не стесняйтесь сказать мне, если я смотрю на это неправильно или есть более простой способ сделать это, более чем рад признать ошибки.

Я написал немного псевдокода для более простой версии,но я обеспокоен тем, что он не соответствует спецификации и будет немного медленным.Код ниже отредактирован как предложено.


<?php

$sql = "SELECT * FROM data";            
$result = mysqli_query($conn, $sql);
$candidates = array();                  
if (mysqli_num_rows($result) > 0) {                          
  while($row = mysqli_fetch_assoc($result)) {
    $candidates[] = $row;
  }
}


//Not sure if this next bit makes sense or doing it wrong.

foreach($candidates as $i => $value) {
if (in_array($cand_subject, $searched_subject))  {
  $i = $i + 1000;
}
elseif (in_array($cand_subject, $similar_subject)) {
  $i = $i + 800;
} else {
  $i = $i * 1;
}

1 Ответ

1 голос
/ 07 июня 2019

Вы на самом деле хотите что-то подобное (все объяснили в комментариях)

<?php 
$pages_array = array( // intiate an array
     array( // another array inside an array to define array of objects.
         'name' => 'James', 
         'skills' => array("ai","php") //another array for array of strings
     ),

     array( // same here
         'name' => 'ben',
         'skills' => array('C#', 'react', 'flutter')
     )
);
foreach ($pages_array as $key => $value) { // for each of the array's
    $score = 0;
    if (in_array("ai", $value["skills"])) { // note $value["skills"] is an array. So we check if the array has the string "ai"
        $score = 100;
    }else{
        $score = 75;
    }
    $value["score"] = $score; // add a field score into the array and put the value.
}
?>

Это то же самое, что вы упомянули код puesdo в своем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...