Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „array_search geht nicht“

rey

Der Frager ;)

Hi,
ich bin dabei eine Klasse mit Ihren Methoden zu schreiben.
Ob meine Zuordnung sinnvoll ist oder nicht weiß ich nicht ich denke aber schon.
ich gebe über die Intanzierung der Klasse
die Parameter mit einer davon ist ein array.
Was soll die function bezwecken?
ich habe ein mehr dimensionales Array
Wenn die Strucktur so ist
Array
(
[0] => Array
(
[0] => player1
[1] => player2
)

[1] => Array
(
[0] => player3
)

[2] => Array
(
[0] => player4
)

)
Dann ist ein Team nicht richtig zugeordnet also muss ich das richtig stellen.
Wenn aber
Array
(
[0] => Array
(
[0] => player1
[1] => player2
)

[1] => Array
(
[0] => player3
[0] => player4
)
)
Dann stimmt die Zuordnung.

Wenn die Teams dann zuoerdnet sind muss ich natürlich splitten in Team1 und Team 2.
Das ist der ganze Zweck
Ich versuche mich an die OOP erst seit ein paar tagen, also bin ich für jegliche Tipps Dankbar.
PHP:
$getTeams = new TeamMates(); 
$getTeams->Teams($info->Players,$spielZaehler,$info->Teams); 

Spieler: <select name="Spieler">'.$getTeams->Auswahl().'</select> //Undefined property: TeamMates::$Teams
<input type="hidden" name="matchup" value="'.$getTeams->RassenCombi().'" > //Call to a member function Auswahl() on a non-object
PHP:
class TeamMates {
    private $anzahl =0;
    function Teams($Players, $playerProTeam,$TeamsINFO)
    {
      $this->anzahl = ($playerProTeam)/2;
      switch ($this->anzahl)
      {
        case 2:
         echo" es war ein 2n2<br />";
         // ermittlung des MU und Teams f&uuml;r 2n2;
            $i=0;
            $incomplete = array();
            for($kx = 0; $kx < sizeof($TeamsINFO); $kx++)
            {
              if(sizeof($TeamsINFO[$kx]) <2)
                {
                  echo $TeamsINFO[$kx]." besitzt blo&szlig; einen Spieler.<br/>";
                  array_push($incomplete,$TeamsINFO[$kx]);
                }else{
                  echo $TeamsINFO[$kx] ." bestitzt genau 2 Spieler.";
                  $complete[$i] = $TeamsINFO[$kx];
                }
            $i++;
            }
            $incomplete[0] = array_merge($incomplete[0], $incomplete[1]);
            array_pop($incomplete);
            foreach($Players as $player)
              {
                if($player->IsObserver =="" || $player->IsObserver==0)
                  {
                    switch($player->Race)
                    {

                      case 0:
                        $pl_race ="Z";
                        break;
                      case 1:
                        $pl_race = "T";
                        break;
                      default:
                        $pl_race = "P";
                    }
                    if(sizeof($incomplete)<2)
                      {
                        if(in_array($player->Name,$complete[0]))
                          {
                            $playerPosi = array_search($player->Name,$complete[0]);
                            $team[0] .= $complete[0][$playerPosi]."__and__". $complete[0][$playerPosi];
                            $select .= "<option value=$team[0]>$team[0]</option>";
                            $race_combT1[] .= $pl_race;
                          }
                         else{
                            $playerPosi = array_search($player->Name,$complete[1]);   //FEHLER Undefined offset 1 & array_search() [function.array-search]: Wrong datatype for second argument
                            $team[1] .= $complete[1][$playerPosi]."__and__". $complete[1][$playerPosi]; //Undefined offset: 1
                            $select .= "<option value=$team[1]>$team[1]</option>"; //Undefined variable: select
                            $race_combT2[] .= $pl_race;
                         }

                      }
                    else{
                        if(in_array($incomplete[0],$player->Name))
                          {
                            $playerPosi = array_search($player->Name,$incomplete[0]);
                            $team[0] .= $incomplete[0][$playerPosi]."__and__". $incomplete[0][$playerPosi];
                            $select .= "<option value=$team[0]>$team[0]</option>";
                            $race_combT1[] .= $pl_race;
                          }
                         else{
                            $playerPosi = array_search($player->Name,$incomplete[1]);
                            $team[1] .= $incomplete[1][$playerPosi]."__and__". $incomplete[1][$playerPosi];
                            $select .= "<option value=$team[1]>$team[1]</option>";
                            $race_combT2[] .= $pl_race;
                         }

                      }
                    }
                    $this->selectop = $select;
                    $this->raceComb = $race_combT1.$race_combT2;
                 }
              

         break;
..
}
}
               function Auswahl()
                {
                  return $this->selectop;
                }
                function RassenCombi()
                {
                  echo "<pre>";
                  print_r($this->raceComb);
                  echo"</pre>";
                }
Ich bekomme verschiedene Fehlermeldungen wobei ich glaube das die nachfolgenden von der ersten abhängig sind.
Notice: Undefined offset: 1
Warning: array_search() [function.array-search]: Wrong datatype for second argument
Notice: Undefined offset: 1
Notice: Undefined variable: select
Notice: Undefined property: TeamMates::$Teams
Fatal error: Call to a member function Auswahl() on a non-object
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: array_search geht nicht

Hi,

versuch mal die Fehlermeldungen zu nutzen ;) Diese Fehler sage ja was nicht richtig ist - auch NOTICE Infos!
 

rey

Der Frager ;)

AW: array_search geht nicht

Ja das versuche ich ja seit 3 std ;)
ich glaube ich habe ein kleines logik Problem.
ich habe nun auch noch mal den Else fall bearbeitet.
PHP:
if(sizeof($incomplete) !=1)
                      {
                        if(in_array($player->Name,$complete[$y]))
                          {
                            $playerPosi = array_search($player->Name,$complete[$y]);
                            echo $playerPosi." bei IF COMPLETE.<br />";
                            $team[0] .= $complete[0][$playerPosi]."__and__". $complete[$y][$playerPosi];
                            $select .= "<option value=$team[0]>$team[0]</option>";
                            array_push($race_combT1,$pl_race);
                          }
                        elseif(in_array($player->Name,$complete[$y]))
                          {
                            $playerPosi = array_search($player->Name,$complete[$y]);
                            echo $playerPosi." bei IF COMPLETE.<br />";
                            $team[0] .= $complete[$y][$playerPosi]."__and__". $complete[$y][$playerPosi];
                            $select .= "<option value=$team[0]>$team[0]</option>";
                            array_push($race_combT1,$pl_race);
                          }
                         else{

                         }
                      }
das heißt wenn der array offset nicht übereinstimmt mit der if Bedingung oder else if dann soll er in die else springen.
Bekomme aber dennoch die Meldung Undefined offset: 2;Undefined offset: 3;Undefined offset: 4;Undefined offset: 6
was hier zu merken ist es kommt nicht 1 und 5 vor.
aber laut php.net sollte wenn er diesen nicht findet einfach false ausgeben.
 

saila

Moderatorle

AW: array_search geht nicht

Na dann beschäftige dich noch mind. 1 weitere Std. mit den Fehlermeldungen, weil dir diese genau sagen was los bzw. fehlerhaft ist ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben