/ / एक सहयोगी सरणी के रूप में एक साहचर्य सरणियों को धक्का दें

एक सहयोगी सरणी को एक सहयोगी सरणी के रूप में दबाएं - php, arrays, laravel, laravel-5, सहयोगी-सरणी

मेरे पास यह वांछित साहचर्य सरणी प्रारूप है (नीचे देखें)

$url = array (
"a1" => array(
"k1" => "content of k1 in a1 array",
"k2" => "content of k2 in a1 array"
),
"a2" => array(
"k1" => "content of k1 in a2 array",
"k2" => "content of k2 in a2 array"
),
);

और लारवेल बात में, मैंने एक डेटाबेस तालिका में एक रिकॉर्ड को पुनर्प्राप्त किया और उस पर लूप किया और फिर उसका मूल्य प्राप्त किया और इसे एक सरणी पर धक्का दिया।

$k = kk::with("kk_names")->get();
$k_array = array();
foreach($k as $item){
$sr = array($item->name => array("k1" => $item->items[0]->description,"k2" => $item->items[1]->description))
array_push($k_array,$sr);
}

यह काम करता है लेकिन साहचर्य सरणी प्रारूप (साहचर्य सरणी प्रारूप के ऊपर देखें) वह नहीं था जो मैं चाहता हूं, यह मुझे इसके बजाय देता है।

$url = array (
array("a1" => array(
"k1" => "content of k1 in a1 array",
"k2" => "content of k2 in a1 array"
)),
array("a2" => array(
"k1" => "content of k1 in a2 array",
"k2" => "content of k2 in a2 array"
)),
);

किसी भी विचार, कृपया मदद?

उत्तर:

उत्तर № 1 के लिए 6

array_push के अंत पर धक्का तत्व array। आप ऐसा कर रहे हैं -

array_push(array(...), array($item->name => ...));

जो देगा -

array (
array($item->name => ...),
array($item->name => ...)
)

लेकिन अपने इच्छित आउटपुट के अनुसार, आप चाहते हैं $item->name तत्वों के लिए सूचकांक और सरणी ("k1" ...) होना

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

foreach($k as $item) {
$k_array[$item->name] = array(
"k1" => $item->items[0]->description,
"k2" => $item->items[1]->description
);
}

उत्तर № 2 के लिए 1

के अंदर foreach लूप इसके बजाय करते हैं।

foreach($k as $item){
$k_array[$item->name] = array(
"k1" => $item->items[0]->description,
"k2" => $item->items[1]->description
)
}

और आप का उपयोग करने की जरूरत नहीं है array_push($k_array,$sr);