【发布时间】:2021-10-17 16:04:00
【问题描述】:
我正在尝试使用 foreach 循环修改数组内的值,这里是数组内容
folders: [{id: "4", sysUser_id: "1", department_id: "0", foldername: "Auditors Files", parent_id: "0"},…]
0: {id: "4", sysUser_id: "1", department_id: "0", foldername: "Auditors Files", parent_id: "0"}
department_id: "0"
foldername: "Auditors Files"
id: "4"
parent_id: "0"
sysUser_id: "1"
1: {id: "3", sysUser_id: "1", department_id: "0", foldername: "Computer Components", parent_id: "0"}
department_id: "0"
foldername: "Computer Components"
id: "3"
parent_id: "0"
sysUser_id: "1"
2: {id: "2", sysUser_id: "1", department_id: "0", foldername: "Internal Auditors", parent_id: "0"}
department_id: "0"
foldername: "Internal Auditors"
id: "2"
parent_id: "0"
sysUser_id: "1"
3: {id: "1", sysUser_id: "1", department_id: "0", foldername: "IT Audit", parent_id: "0"}
department_id: "0"
foldername: "IT Audit"
id: "1"
parent_id: "0"
sysUser_id: "1"
我想做的是像这样修改所有的 id 值
$reconstruct = array();
foreach($result['folders'] as $folder){
$reconstruct['id'][] = $this->my_encryption->urlEncrypt($folder->id);
$reconstruct['sysUser_id'][] = $this->my_encryption->urlEncrypt($folder->sysUser_id);
$reconstruct['department_id'][] = $this->my_encryption->urlEncrypt($folder->department_id);
$reconstruct['foldername'][] = $folder->foldername;
$reconstruct['parent_id'][] = $this->my_encryption->urlEncrypt($folder->parent_id);
}
$try['folders'] = $reconstruct;
echo json_encode($try);
但是输出变成了这样
folders: {id: ["OElkUTBtK3FLZElwZm52ekhoSnZudz09OjpZBMuJMlf1iSHwxTeJncvP",…],…}
department_id: ["OE1Gb0xDK3BzNllzMjltVTVEZ3VwQT09OjoKbrlVvBKoPd5GiomYTreX",…]
0: "OE1Gb0xDK3BzNllzMjltVTVEZ3VwQT09OjoKbrlVvBKoPd5GiomYTreX"
1: "N3ZnK1V4MFZlckNFa0NzMytIREt1Zz09OjqzdSvYf1H6z21oWM_g2f8K"
2: "eUdkYmxHKzZkSmlsbEZXL2c0K250QT09OjoSE0DgI8sd2ho9JWDAsaSw"
3: "cXM5WlpqcjdjS0VncFNWOVJreUNrZz09OjrC-NAeGAPthrfrH-SG9sx8"
foldername: ["Auditors Files", "Computer Components", "Internal Auditors", "IT Audit"]
0: "Auditors Files"
1: "Computer Components"
2: "Internal Auditors"
3: "IT Audit"
id: ["OElkUTBtK3FLZElwZm52ekhoSnZudz09OjpZBMuJMlf1iSHwxTeJncvP",…]
0: "OElkUTBtK3FLZElwZm52ekhoSnZudz09OjpZBMuJMlf1iSHwxTeJncvP"
1: "Vlh4NVZmQlQxNjRSUWpsclc4SUtwZz09OjpwQRLcA_b90a8QT6mc4vxN"
2: "VGZwVlBrcmdEVUQzMzFMby9vdVQvdz09Ojrwdaqei86MQsuNRn-SOAYR"
3: "ZXlSUmNKRFMvWFFSRW90T240WEovUT09OjotEXan6A0ZO3lUBW0ae-N3"
parent_id: ["cXUvcWRtM0xKM2lSdXR3dTB2bkkvZz09Ojq7vtCUxphCBQya72IILSOO",…]
0: "cXUvcWRtM0xKM2lSdXR3dTB2bkkvZz09Ojq7vtCUxphCBQya72IILSOO"
1: "WFlvemlZcm1oT2ZTTy9sVUJLbzlyZz09OjpYmqeY8CWXnmn-l1sqMxHq"
2: "c2FHUmIrZ1J5OGpDT01hRFlxOVJVdz09OjpOa5sIP8BGWJpy9ZmA2ZUI"
3: "S1YyRHc1WWlMKzZMaTBQbUc0NmxkZz09OjqYj_cEXN1s75Vwimy9GZ6j"
sysUser_id: ["UjIxZ1hMR3dvd3BISVpnNjVkVk9tdz09OjrUK5qhxu0Mp4vvTN5YA4Eo",…]
0: "UjIxZ1hMR3dvd3BISVpnNjVkVk9tdz09OjrUK5qhxu0Mp4vvTN5YA4Eo"
1: "UGRwb0RYRUd5N3BrVTV0VDUrS0tkdz09OjpQo2CVXk28hUGGfrBVScq7"
2: "V3hXWGhoRWRyT01oQjdwV3hsUFVPZz09OjoxHbsRPJhSLQBEJKoBTAgB"
3: "cUd1UDRDR1VMZmh1d2tsU0FQaXlUQT09Ojq57rc7RIQMOaKN3NQfVGVa"
我想要的只是更改数组值并且仍然具有相同的格式。我该怎么做?
【问题讨论】:
-
您能描述一下预期的结果吗?你似乎没有改变任何东西;相反,您正在创建一个新数组,其中包含 id、部门 id 等键。鉴于您的代码,输出数组的结构是正确的 -
$reconstruct['id'][]如果您想修改某些内容,为什么不在同一个数组中进行而不是创建一个新数组? -
我想获得与原样相同的输出。或者您可以在我发布的第一个代码的顶部看到它。而且我正在使用 codeigniter 我只是返回数组,这就是为什么我不能在同一个数组中更改它。
标签: php arrays json loops foreach