php - 将多面额数组处理为数组索引作为数组
问题描述
我在 php 中有多维数组,这是数组格式,我需要在循环中处理这些数据,并希望每个数组值都带有它的索引。
Array
(
[name] => Array
(
[0] => third.png
[1] => second.png
[2] => first.png
)
[type] => Array
(
[0] => image/png
[1] => image/png
[2] => image/png
)
[tmp_name] => Array
(
[0] => /opt/lampp/temp/phpOPmQcB
[1] => /opt/lampp/temp/phpk0j1yp
[2] => /opt/lampp/temp/phpS2mhVd
)
[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
[size] => Array
(
[0] => 179440
[1] => 102238
[2] => 75915
)
)
我想用新索引处理多维数组,例如核心 php 中的这个多维数组,请帮帮我
array(
Array
(
[name] => third.png
[type] => image/png
[tmp_name] => /opt/lampp/temp/phpOPmQcB
[error] => 0
[size] => 179440
)
Array
(
[name] => second.png
[type] => image/png
[tmp_name] =>/opt/lampp/temp/phpk0j1yp
[error] => 0
[size] => 102238
)
Array
(
[name] => first.png
[type] => image/png
[tmp_name] => /opt/lampp/temp/phpS2mhVd
[error] => 0
[size] => 75915
)
)
解决方案
您可以使用 array_keys 获取数组的键。
然后,您需要循环其中一个子数组的计数。$keys
我使用变量 从第一个子数组中获取计数。
我嵌套了一个 for 和一个 foreach 来构建您期望的数组。
此方法是动态的,并且适用于更大的输入数组,包括子数组的数量和项目的数量。
$keys = array_keys($arr);
$count = count($arr[$keys[0]]);
for($i = 0; $i<$count; $i++){
foreach($keys as $val){
$new[$i][$val] = $arr[$val][$i];
}
}
var_dump($new);
输出:
array(3) {
[0]=>
array(5) {
["name"] => "third.png"
["type"] => "image/png"
["tmp_name"] => "/opt/lampp/temp/phpOPmQcB"
["error"] => 0
["size"] => 179440
}
[1]=>
array(5) {
["name"] => "second.png"
["type"] => "image/png"
["tmp_name"] => "/opt/lampp/temp/phpk0j1yp"
["error"] => 0
["size"] => 102238
}
[2]=>
array(5) {
["name"] => "first.png"
["type"] => "image/png"
["tmp_name"] => "/opt/lampp/temp/phpS2mhVd"
["error"] => 0
["size"] => 75915
}
}
推荐阅读
- php - WooCommerce 以编程方式修改购物车总数
- python-3.x - 为 Pybluez 安装 GATTlib?
- excel - 查找具有可变范围的缺失数字 for 循环
- dropbox - Dropbox 的连接数量有限。有什么办法可以解决吗?
- c++ - 为什么使用 NULL 指针调用类方法?
- javascript - 仅获取图像 URL 的替换字符失败
- angular - Angular中使用flatMap的大量api调用
- node.js - Async/Await 在递归函数中不起作用
- javascript - 在属性中附加带有三引号的 HTML
- c++ - 有没有办法在 GFlags 中传递带有命令行参数的整数数组?