php - 从常规数组创建多维数组
问题描述
我正在使用简单的 html dom 来获取表格的内容:
foreach($html->find('#maintable .table tr td') as $a) {
$array[] = $a->plaintext;
}
print_r($array);
返回的数组如下所示:
Array (
[0] => 1
[1] => 0xd35a2d8c651f3eba4f0a044db961b5b0ccf68a2d
[2] => 309953166.54621424
[3] => 30.9953%
[4] => 2
[5] => 0xe17c20292b2f1b0ff887dc32a73c259fae25f03b
[6] => 200000001
[7] => 20.0000%
[8] => 3
[9] => 0x0000000000000000000000000000000000000000
[10] => 129336426
[11] => 12.9336%
)
我想从上面的数组创建一个新的多维数组,从第一行开始每三行跳过一行,如下所示:
New Array (
[1]
['address'] => 0xd35a2d8c651f3eba4f0a044db961b5b0ccf68a2d
['amount'] => 309953166.54621424
['percent'] => 30.9953%
[2]
['address'] => 0xe17c20292b2f1b0ff887dc32a73c259fae25f03b
['amount'] => 200000001
['percent'] => 20.0000%
[3]
['address'] => 0x0000000000000000000000000000000000000000
['amount'] => 129336426
['percent'] => 12.9336%
)
在新数组中,“address”代表原始数组中的 [1] [5] 和 [9]。“数量”代表[2] [6]和[10],“百分比”代表[3] [7]和[11]。
我怎样才能做到这一点?谢谢
解决方案
鉴于您示例中的输入数组,这应该符合您的要求:
$newArray = [];
for($i=1; $i<count($oldArray); $i=($i+4)){
$newArray[] = [
'address' => (isset($oldArray[$i])) ? $oldArray[$i] : '',
'amount' => (isset($oldArray[($i+1)])) ? $oldArray[($i+1)] : '',
'percent' => (isset($oldArray[($i+2)])) ? $oldArray[($i+2)] : '',
];
}
print_r($newArray);
生产:
Array
(
[0] => Array
(
[address] => 0xd35a2d8c651f3eba4f0a044db961b5b0ccf68a2d
[amount] => 309953166.54621424
[percent] => 30.9953%
)
[1] => Array
(
[address] => 0xe17c20292b2f1b0ff887dc32a73c259fae25f03b
[amount] => 200000001
[percent] => 20.0000%
)
[2] => Array
(
[address] => 0x0000000000000000000000000000000000000000
[amount] => 129336426
[percent] => 12.9336%
)
)
推荐阅读
- javascript - 多重计算无法正常工作
- r - 根据 R 中的条件填充列
- javascript - 我无法在 JavaScript 中实现 forEach 循环
- python - 如何使用 python pandas 在本地系统 Jupyter Notebook 中读取两个较大的 5GB csv 文件?如何在本地加入两个数据框进行数据分析?
- javascript - UnhandledPromiseRejectionWarning:导出打字稿文件时找不到函数
- azure-devops - 如何在 Azure DevOps Services 中调用迭代 API 查询
- tomcat - URL 重写在 Apache Tomcat 9.0.30 版本中不起作用。为什么?
- excel - 具有命名范围的多个间接
- python - 使用 python3 解析嵌套 JSON - 获取 KeyError,您能否指导?
- c++ - C ++中dlsym的未定义符号