PHP - php, arrays में '&' समस्या का उपयोग करके सरणी कुंजी के साथ सरणी कुंजी को बदलें

मेरे पास एक सरणी है:

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"]=>

इसे ठीक करने का कोई तरीका ?

उत्तर:

जवाब के लिए 3 № 1

आप बस कर सकते हैं:

$newarray = array_combine(array_column($orig, "order_reference"), $orig);
  • array_combine () - कुंजियों के लिए एक सरणी और इसके मान के लिए दूसरे का उपयोग करके एक सरणी बनाता है

  • array_column () - इनपुट ऐरे में किसी एकल कॉलम से मान लौटाएं


जवाब के लिए 0 № 2

आप इसे एकल कॉल के साथ कर सकते हैं array_column तीसरे का उपयोग करना $index_key पैरामीटर:

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

देख https://eval.in/972672