Schleifenkonstrukt inkorrekt

tklustig

Erfahrenes Mitglied
Hallo Leute, meine Intention ist es, nur diejenigen IDs an Datensätzen aus einem Array aus Objekten in ein Array zu verfrachten, sofern ein Parameter kleiner ist als ein anderer. Diese Parameter stehen in keinem Zusammenhang zu dem Array aus Objekten. Seltsamerweise werden jedoch alle IDs in das Array verfrachtet. Hier ist ein var_dump():
Code:
E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:330:float 27

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:331:int 45

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:330:float 27

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:331:int 45

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:330:float 27

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:331:int 45

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:330:float 27

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:331:int 45

E:\xampp\htdocs\yii2_perswitch\frontend\modules\bewerber\controllers\BewerberController.php:337:
array (size=4)
  0 => int 1
  1 => int 2
  2 => int 3
  3 => int 4

zu folgendem Code:
PHP:
           foreach ($modelVakanz as $matching) {
                for ($i = 0; $i < count($ArrayOfDistances); $i++) {
                    if ($ArrayOfDistances[$i] <= $model->umkreis) {
                        var_dump($ArrayOfDistances[$i]);
                        var_dump($model->umkreis);
                        $id = $matching->id;
                        array_push($ArrayOfVakanzenID, $id);
                    }
                }
            }
      var_dump($ArrayOfVakanzenID);
      die();
Um euch die Sache zu erleichtern hier noch weitere var_dumps():
PHP:
 var_dump($ArrayOfDistances);
array
  0 => float 211
  1 => float 288
  2 => float 288
  3 => float 27

print_r("<br>Umkreis:" . $model->umkreis);

Umkreis:45
Ich benötige die foreach-Schleife, um an die ID des Datensatzes ranzukommen! Mit break kann ich auch nicht aussteigen, da es durchaus mehrere Treffer geben könnte, die dann nicht mehr berücksichtigt werden. Wie codiere ich den Krempel richtig?
 
Zuletzt bearbeitet:
naja, $ArrayOfDistances steht nicht im Zusammenhang zu $matching. Das heißt, dass sobald ein Treffer in der $ArrayOfDistances gefunden wird, wird auch die Matching-ID mit gespeichert ( in deinem Fall alle oder keine).
 
Es muss doch irgendwie möglich sein, meine anfangs geschilderte Intention umzusetzen, auch wenn $matching und $ArrayOfDistances nicht zusammenhängen. Aber wie, das ist die große Frage!
Bingo. Prüfe mittels Kondition einfach die Distanz. Sofern die Distanz kleiner ist(s.oben), verfrachte ich die ID des matchings in ein array. Das ganze sieht jetzt so aus:
PHP:
         for ($i = 0; $i < $ArrayLaenge; $i++) {
                $distance = $Geo->GetDistanceBetweenTwoPoints($ArrayOfGeoBewerber[1], $ArrayOfGeoBewerber[0], $GeodatenVakanz[1][$i], $GeodatenVakanz[0][$i], 1, BewerberController::RenderBackInCaseOfError);
                if ($distance <= $model->umkreis) {
                    $pk = $GeodatenVakanz[2][$i];
                    $IdEkontakt = KontaktAdresse::findOne(['id' => $pk])->id_e_kontakt;
                    $IdOfVakanz = EKontakt::findOne(['id' => $IdEkontakt])->id_organisation;
                    array_push($ArrayOfVakanzenID, $IdOfVakanz);
                }
            }
 
Zuletzt bearbeitet:
Yuup. Ist es. Wenn ich den "Als gelöst markieren" Button, den es vor der Umgestaltung (nicht immer sind Updates bzw Veränderungen vorteilhaft) gab, finden würde, hätte ich Ihn betätigt....
 
Zurück