/ / PHPで '&'を使用して配列の値を配列のキーに置き換える - php、array

配列の値を配列キーで置き換え、PHPで '&'の問題を使用する - php、配列

私はのような配列があります:

array(4) {
[0]=>
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "200123130"
["store_reference"]=>
....
[1]
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "20222220"
["store_reference"]=>
...

この配列が欲しいのですが。

array(4) {
[200123130]=>
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "200123130"
["store_reference"]=>
....
[20222220]
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "20222220"
["store_reference"]=>
...

これは私が試したものです:

$i = 0;
foreach ($data["data"] as &$key) {
$data["data"][$key["order_reference"]] = array_values($data["data"][$i]);
$i++;
}

しかし、私はより大きな配列を取得します。

array(9) {
[0]=>
&array(34) {
["id"]=>

これを修正する方法はありますか?

回答:

回答№1の場合は3

あなたは単に以下を行うことができます:

$newarray = array_combine(array_column($orig, "order_reference"), $orig);
  • array_combine() - 1つの配列をキーに、もう1つをその値に使用して配列を作成する

  • array_column() - 入力配列の単一の列から値を返す


回答№2の場合は0

これを1回呼び出すだけでこれを実行できます。 array_column 3番目の $index_key パラメータ:

$new = array_column($orig, null, "order_reference");

見る https://eval.in/972672