У меня есть следующие $_POST
массив:
Array
(
[fileName] => Array
(
[0] => 8.png
[1] => 2_OnClick_OK.jpg
)
[fileLink] => Array
(
[0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
[1] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)
[Submit] => Submit File
)
Я получил вышеуказанный вывод после выполнения следующего утверждения:
print_r($_POST); die; // Code to print the $_POST array
Теперь из вышесказанного $_POST
массив Я должен создать новый требуемый массив, который должен быть структурирован следующим образом после его печати:
Array
(
[8.png] => Array
(
[0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
)
[2_OnClick_OK.jpg]
(
[0] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)
)
Для этого я попробовал следующий код.
$request_Arr = array_combine ( $_POST['fileName'], $_POST['fileLink'] );
После выполнения вышеуказанного кода, если я распечатаю массив $request_Arr
выводит следующий вывод:
Array (
[8.png] => filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
[2_OnClick_OK.jpg] => filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)
Так что моя проблема в том, что он не генерирует [0]
Индексный ключ для внутреннего массива. Я хочу новый массив с [0]
Ключ индекса представлен следующим образом:
Array
(
[8.png] => Array
(
[0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
)
[2_OnClick_OK.jpg]
(
[0] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)
)
Может кто-нибудь исправить мою ошибку и помочь мне в создании массива в нужном формате?
N.B. :- Только для демонстрации я взял два элемента. В реальном сценарии могут быть сотни таких элементов. Поэтому, пожалуйста, рассмотрите оптимальный и эффективный способ получить этот выходной массив.
Заранее спасибо.
Другим способом было бы сопоставить всю ссылку, чтобы добавить другое измерение гнезда, а затем объединить.
$fileLink = array_map(function($link){ return array($link); }, $_POST['fileLink']);
$request_Arr = array_combine ( $_POST['fileName'], $fileLink );
Или, если вы можете изменить разметку, она выглядит примерно так и предпочитает не трогать исходный массив:
<input type="text" name="fileName[]" value="" />
<input type="text" name="fileLink[][]" value="" /> // adds another nest
Тогда откровенно объединяем:
$request_Arr = array_combine ( $_POST['fileName'], $_POST['fileLink'] );
Другой способ — использовать цикл foreach для создания нового массива:
$array = array();
foreach ($_POST['fileName'] as $key => $value) {
$array[$value] = array($_POST['fileLink'][$key]);
}
echo '<pre>'.print_r($_POST,1).'</pre>';