1
我以下兩個數組如下:如何在現有的關聯數組的內部鍵中創建新的數組鍵?
$test_array = array('frequencyCapping','images','sizes');
$soap_arr = array(
'lineItemId' => '',
'creativeData' => array(
'name' => '',
'adType' => '',
'clickUrl' => '',
'weight' => '',
'width' => '',
'height' => '',
'landingPageId' => '',
'text' => '',
'frequencyCapping' => array(
'interval' => '',
'mount' => ''
),
'images' => array(
'file' => array(
'referenceUrl' => '',
'binaryContent' => ''
),
'externalUrl' => '',
'sizes' => array(
'text' => '',
'clickUrl' => '',
'track' => '',
'width' => '',
'height' => ''
),
)
)
);
實際上我的單個陣列上面給出。實際的數組取決於用戶填寫的表單值。現在我想循環遍歷這個數組並找出匹配鍵,如果這些鍵匹配,那麼在它內部創建一個新的數組鍵,並將所有重新分配的內容添加到它中。因爲它已經寫了下面的函數,但它不起作用,因爲它覆蓋了所有創建的數組元素。實際上它不會生成我想要的所需陣列。
function update_array($soap_arr, $test_array) {
foreach ($soap_arr as $key => $value) {
// if key found then move value to 0th position
if(in_array($key, $test_array)) {
$temp = $soap_arr[$key];
unset($soap_arr[$key]);
$soap_arr[$key][0] = $temp;
}
// recursive call
if(is_array($value)) {
update_array($value, $test_array);
}
}
//print_r($soap_arr);
return $soap_arr;
}
// updation not preserved outside of foreach
$ar = update_array($soap_arr, $test_array);
print_r($ar)
期望的結果數組應該如下:
Array
(
[lineItemId] =>
[creativeData] => Array
(
[name] =>
[adType] =>
[clickUrl] =>
[weight] =>
[width] =>
[height] =>
[landingPageId] =>
[text] =>
[frequencyCapping] => Array
(
[0] => Array
(
[interval] =>
[amount] =>
)
)
[images] => Array
(
[0] => Array
(
[file] => Array
(
[referenceUrl] =>
[binaryContent] =>
)
[externalUrl] =>
[sizes] => Array
(
[0] => Array
(
[text] =>
[clickUrl] =>
[track] =>
[width] =>
[height] =>
)
)
)
)
)
)
誰能幫助我在這方面嗎?提前致謝。