[英]Looping through a multidimentional array to create new arrays
我有一個數組(通過上傳多個文件產生),返回以下內容:
Array
(
[name] => Array
(
[0] => lightshow.png
[1] => mia.guyana.jpg
[2] => skanking.jpg
)
[type] => Array
(
[0] => image/png
[1] => image/jpeg
[2] => image/jpeg
)
[tmp_name] => Array
(
[0] => /Applications/MAMP/tmp/php/phph7f4nD
[1] => /Applications/MAMP/tmp/php/phppS2YDH
[2] => /Applications/MAMP/tmp/php/phptebtKr
)
[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
[size] => Array
(
[0] => 160325
[1] => 153524
[2] => 29054
)
)
我需要將每個鍵值對拉入foreach循環內的單獨數組中,以進行處理,返回的結果如下:
Array
(
[name] => lightshow.png
[type] => image/png
[tmp_name] => /Applications/MAMP/tmp/php/phph7f4nD
[error] => 0
[size] => 160325
)
有任何想法嗎?
$result = array();
foreach( $original_array as $key => $category ) {
foreach( $category as $index => $value ) {
$result[$index][$key] = $value;
}
}
謝謝大家,我在測試了jsaloen和Sean的答案后,最終回答了我自己的問題,這些答案雖然很接近,但並不是我想要的。 我的解決方案可能有點束手無策,但是行得通!
if (isset($_FILES['files'])) {
$userfiles = $_FILES['files'];
$limit = count($userfiles['name']);
$i = 0;
while ($i < $limit) {
$userfile = array(
'name' => $userfiles['name'][$i],
'type' => $userfiles['type'][$i],
'tmp_name' => $userfiles['tmp_name'][$i],
'error' => $userfiles['error'][$i],
'size' => $userfiles['size'][$i]
);
$i++;
echo "<pre>";
print_r($userfile);
echo "</pre>";
}
}
我還沒有嘗試過deceze的答案,我還不太了解! 它利用了我還沒有學到的東西!
相當重復,但是有效:
$merged = array_map(function ($name, $type, $tmp_name, $error, $size) {
return compact('name', 'type', 'tmp_name', 'error', 'size');
}, $array['name'], $array['type'], $array['tmp_name'], $array['error'], $array['size']);
我會這樣。
//our end result array
$NewArray = array();
//loop through the array
foreach( $Array as $Key => $inner_array )
{
$i = 0;
//setup temp array to populate
$TempArray = array();
foreach( $inner_array as $inner_key => $inner_value )
{
//loop through the inner value
$TempArray[$inner_key] = $inner_array[$i];
}
$i++;
//setup the next key to be the temp array
$NewArray[] = $TempArray;
}
這將返回一個類似的數組
Array(
Array
(
[name] => lightshow.png
[type] => image/png
[tmp_name] => /Applications/MAMP/tmp/php/phph7f4nD
[error] => 0
[size] => 160325
)
Array
(
[name] => lightshow.png
[type] => image/png
[tmp_name] => /Applications/MAMP/tmp/php/phph7f4nD
[error] => 0
[size] => 160325
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.