Sie schaffen eine assoziatives Array, was bedeutet, dass jedes Element asso ist mit einem eindeutigen Schlüssel verknüpft. Daher kann in einem Array jeder Schlüssel nur einmal angezeigt werden. Ein zweimal erscheinender Schlüssel bedeutet, dass der Wert überschrieben wird.
Wenn Sie versuchen, das Array var_dump
, würde es diese Ausgabe haben:
array(1) {
["JOIN"]=>
array(3) {
[0]=>
string(5) "coins"
[1]=>
string(8) "users.id"
[2]=>
string(7) "user_id"
}
}
Wie aus diesem Ergebnis zu sehen ist, nur eine Zeile vorhanden ist.
Wenn Sie 'JOIN'
in jedem Element haben müssen, vielleicht möchten Sie Ihre Array-Struktur in das ändern:
$join = [
['JOIN' => ['coins','users.id','user_id']],
['JOIN' => ['coins','users.id','user_id']]
];
Dies wird die Informationen 'JOIN'
in jedem Element tragen. Ich kann mir jedoch nicht vorstellen, warum Sie so etwas brauchen würden.
Stattdessen vielleicht möchten Sie mehrere Elemente unter dem 'JOIN
Schlüssel haben:
$join = [
'JOIN' => [
['coins','users.id','user_id'],
['coins','users.id','user_id']
]
];
Wie pro Ihre Kommentare, vielleicht irgendwann Sie eine Struktur wie diese haben wollen:
$join = [
'JOIN' => [
['coins','users.id','user_id'],
['coins','users.id','user_id'],
],
'INNER JOIN' => [
['coins','users.id','user_id'],
['coins','users.id','user_id'],
]
];
Nach Ihre Kommentare, könnte es wünschenswert sein, wenn Sie dies durch objektorientierte Programmierung stattdessen tun:
class Join{
const JOIN = 0;
const INNER_JOIN = 1;
// we are using constants to prevent bugs caused by typos
public $type;
public $coins;
public $usersDotId; // I don't really know what you are trying to do here
public $userId;
}
Dann können Sie es wie folgt verwenden:
$joins = [];
$join = new Join();
$join->type = Join::INNER_JOIN;
$join->coins = "some_value";
$join->usersDotId = "some_value";
$join->userId = "some_value";
$joins[] = $id;
Weil Sie nur einen eindeutigen Schlüssel haben – Nosyara
Es gibt $ join ['JOIN'] 'als den einzigen äußeren Schlüssel im Array. Sie haben zwei gesetzt, aber die zweite überschreibt sofort die erste. – Martin
@Nosyara, wie kann ich dieses Array ändern, um 2 Schlüssel zu haben, ohne den Schlüsselnamen zu ändern? – William