私はのような配列があります:
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");